Skocz do zawartości

Rozmiar pliku


Mentoss

Rekomendowane odpowiedzi

Jak sprawdzić rozmiar pliku bez otwierania go? Chodzi o to, że świeżo stworzony plik przez chwilę istnieje, ale jest pusty i nie da się go otworzyć, a dopiero po chwili nabiera masy i czytelności. Ja natomiast potrzebuję otworzyć go tuż po stworzeniu tak, aby nie wywalał błędów.

Odnośnik do komentarza
Udostępnij na innych stronach

To zależy od rodzaju pliku, który się tworzy. W każdym razie plik dopiero co stworzony zawsze zajmuje zero bajtów, więc nijak sprawdzić, ile będzie zajmował po wypełnieniu go - chyba, że wcześniej obliczy się ten rozmiar na podstawie danych, które zapiszesz.

Odnośnik do komentarza
Udostępnij na innych stronach

Chcę właśnie wykorzystać to, że jak nie można go otworzyć, ma 0B. Sprawdzając rozmiar pliku bez otwierania go, będę wiedział, czy można go już otworzyć, czy trzeba jeszcze czekać. W ten sposób nie wywali errora, który w tej chwili crash-uje proces.

Odnośnik do komentarza
Udostępnij na innych stronach

Powinieneś mieć pożliwość przewidzenia, kiedy plik nie będzie pusty.

Nie wiem, czy to zadziała:

GML
f = file_text_open_read(ścieżka)

if(file_text_eof(f))

{

file_text_close(f)

exit //jeśli jest pusty, dalszego kodu nie wykona

}

dalszy kod

Odnośnik do komentarza
Udostępnij na innych stronach

nn, to nie ma prawa zadziałać, jako że nie można go wgl. otworzyć. Po prostu wywala errora, i tyle - nie ma dalej czytania, czy plik sie skończył, czy nie, a bez sensu by było przy każdym pliku czekać np. dwie sekundy, żeby na pewno zdążyło się zrobić i dalej działać. Musi być przecież jakiś sposób, żeby sprawdzić, czy plik jest zdatny do otwarcia, czy odmówi współpracy...

Odnośnik do komentarza
Udostępnij na innych stronach

Znaczy, ja Ci powiem tak: napisałem sobie dll-a, który szyfruje mi pliki. Bierze plik A i tworzy plik B, który jest odwzorowaniem pliku A po zakodowaniu/odkodowaniu.

I to działa dobrze, ALE po zakończeniu działania biblioteki, jeżeli chcę ten plik od razu otworzyć do czytania, to wyskakuje error. Jeśli nie - wszystko jest dobrze. Sam sprawdziłem zawartość pliku po odszyfrowaniu i działanie programu bez natychmiastowego otwierania pliku - wszystko działa poprawnie. N mam pojęcia o co chodzi.

Odnośnik do komentarza
Udostępnij na innych stronach

Zamykam. I nie mam pojęcia, o co może chodzić. Jeżeli mam (to z testu dlla):

GML
var txt;

txt='C for coding,#D for decoding.';

draw_text(room_width/2-string_width(txt)/2,room_height/2-string_height(txt)/2,txt);

 

if keyboard_check_pressed(ord('C'))

{

cai(get_open_filename('',''),get_save_filename('',''));

}

else if keyboard_check_pressed(ord('D'))

{

cad(get_open_filename('',''),get_save_filename('',''));

}

natomiast, jeżeli dam samo cad(get_open_filename('',''),get_save_filename('','')); , to już wywala błęda.
Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...