|
Wpisał doctor
|
|
Sobota, 24. Luty 2007 21:19 |
|
Operacje na plikach
W bibliotece VCL zaszyte są potężne możliwości operacji na plikach. Umożliwiają one w pełni funkcjonalne zarządzanie zbiorem plików na dyskach.
Pierwszą funkcją będzie CopyFile(char nazwa_pliku, char nazwa_pliku_w_nowej_lokalizacji, int FailifExists) Funkcja pobiera 3 argumenty. Nazwy plików podajemy w postaci typu char. Ostatni parametr FailifExists mówi o tym, jak ma się zachować program jeśli plik o tej samej nazwie już istnieje. I tak: {viewonly=registered} jeśli FailifExists = 0 to jeżeli istnieje plik o tej samej nazwie to zostanie nadpisany jeśli FailifExists = 1 to jeżeli istnieje plik o tej samej nazwie to nie zostanie nadpisany. Inaczej mówiąc operacja kopiowania nie powiedzie się.
Zmiana nazwy / przenoszenie pliku do innej lokalizacji MoveFile(char obecna_nazwa, char nowa_nazwa)
Zmiana nazwy pliku RenameFile(AnsiString stara_nazwa, AnsiString nowa_nazwa)
Usuwanie pliku DeleteFile(AnsiString nazwa_pliku)// zwraca true jeśli istnieje
Sprawdzanie czy plik istnieje bool FileExists(AnsiString nazwa)
Tworzenie katalogu CreateDir(AnsiString nazwa)
Usuwanie katalogu RemoveDir(AnsiString nazwa)
Powyższe funkcje zwracają wartość true jeśli operacja się powiedzie, false w przeciwnym wypadku.
Zwracanie bieżącej lokalizacji AnsiString GetCurrentDir()
Ustawianie bieżącej lokalizacji bool SetCurrentDir(AnsiString Dir)
Sprawdzanie czy katalog istnieje bool DirectoryExists(AnsiString Dir)// zwraca true jeśli wybrany katalog istnieje
Przykład
void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString nazwa = "WBW-14436.avi"; CopyFile(nazwa.c_str(), "11", 1); MoveFile(nazwa.c_str(), "NN"); DeleteFile("NN"); if(!DirectoryExists("Dir")) {// jeśli nie istnieje to ją stwórz
if(CreateDir("Dir"))// jeśli utworzono Label2->Caption = "Utworzono katalog Dir"; Label1->Caption = "Katalog wczesniej nie istnial"; }
RemoveDir("ABC");
Label3->Caption = GetCurrentDir();
}
|
Sprawdzanie ilości wolnego miejsca na dysku Wykorzystamy do tego funkcję __int64 DiskFree(BYTE Drive) Funkcja zwraca liczbę bajtów na określonym dysku. Argument Drive może przyjmować wartości: 0 - dla bieżącego dysku 1 - dla dysku A 3 - dla dysku C 4 - dla dysku D itd
Aby uzyskać wynik bezpośrednio w GB należy podzielić wynik przez 1e+09 DiskFree(3)/1e+09; {/viewonly}
|
|
Ostatnia aktualizacja: Piątek, 10. Lipiec 2009 13:59 |