Skocz do zawartości

Sprawdzanie rozmiaru pliku


FanXX

Rekomendowane odpowiedzi

Witajcie, chciałbym otrzymać od was małą pomoc gdyż sobie z tym nie potrafię po prostu poradzić.

Skrypt

GML
file_bin_size

odwołuje się do plików tekstowych. Ja natomiast muszę z poziomu GM'a sprawdzić ile rozmiaru ma plik np EXE czy MP3 w folderze z grą. Mi chodzi o tzw "ograniczony rozmiar" plików znajdujących się w folderze czyli u mnie ma działać tak, że gdy w folderze będzie plików ponad 100 MB to gra sie nie włączy. :D

 

Czy sprawdzanie plików pod kątem rozmiaru prócz tekstowych jest możliwe?

Odnośnik do komentarza
Udostępnij na innych stronach

Witajcie, chciałbym otrzymać od was małą pomoc gdyż sobie z tym nie potrafię po prostu poradzić.

Skrypt

GML
file_bin_size

odwołuje się do plików tekstowych. Ja natomiast muszę z poziomu GM'a sprawdzić ile rozmiaru ma plik np EXE czy MP3 w folderze z grą. Mi chodzi o tzw "ograniczony rozmiar" plików znajdujących się w folderze czyli u mnie ma działać tak, że gdy w folderze będzie plików ponad 100 MB to gra sie nie włączy. :D

 

Czy sprawdzanie plików pod kątem rozmiaru prócz tekstowych jest możliwe?

file_bin_size nie odwołuje się tylko do plików tekstowych... ale do każdego pliku. Otwierasz plik poprzez file_bin_open(fname,mod) a zwróconą wartość zapisujesz do zmiennej, którą później można wykorzystać do innych funkcji z prefiksem file_bin_*, w tym file_bin_size(fileid). Nie zapomnij jednak o file_bin_close(fileid)

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki ogromne za pomoc. Zastosowałem kod z twojego wzoru taki:

 

GML
var size,a;

size = file_bin_open('Plik.exe',2)

a = file_bin_size(size)/1000000

show_message(a)

file_bin_close(size)

 

I działa idealnie. Tylko mnie ciekawi jedna rzecz. Czy da się jakoś np z folderu pliki wyskanować z poziomu GM'a wszystkie zawarte w nim pliki i zliczyć ich rozmiar? Pobawie się file_find może coś mi sie uda.

Odnośnik do komentarza
Udostępnij na innych stronach

Może zrób tablice, która w pętli będzie wczytywała wszystkie pliki w folderze a na końcu doda ich rozmiar? Chociaż może być problem z nazwami plików, no chyba że będą np. 001.data, 002.data itd.

 

Tablic robić nie potrafie, dlatego szukam examplów. Co do nazw to coś takiego będzie jak opisałeś czyli app001.JAKISFORMAT.

Odnośnik do komentarza
Udostępnij na innych stronach

Przeczytaj to i zrób parę ćwiczeń z tablicami. Według mnie jest to najlepszy sposób dla Twojego problemu, a tablice się bardzo przydają :).

 

Potem tylko stworzysz pętle for, która wszystko wczyta, albo już od razu w obiegu będzie liczyła rozmiar plików.

 

Edit

 

Maybe to?

 

GML
rozmiar = 0;

 

for(i = 0; i <= ilość plików; i++)

{

var size, a;

 

size = file_bin_open('app00' + i + '.JAKISFORMAT',2)

a = file_bin_size(size)/1000000

 

rozmiar += size;

 

file_bin_close(size)

}

 

(Z góry przepraszam za jakiekolwiek błędy, w GML siedzę od niedawna, ale jest podobny do C++/Javy.)

Odnośnik do komentarza
Udostępnij na innych stronach

GML
size = 0;

find = file_find_first(working_directory+"\*", 0);

file = -1;

 

while (find != "")

{

file = file_bin_open(working_directory+"\"+find, 0);

size += file_bin_size(file);

file_bin_close(file);

find = file_find_next();

}

 

file_find_close();

 

show_message("Size: "+string(size/1024/1024)+" MB");

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ę...