Operacje plikowe PDF Drukuj Email
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}
Komentarze
Dodaj nowy Szukaj
+/-
Napisz komentarz
Nick:
E-mail:
 
Strona www:
Tytuł:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Proszę wpisać kod antyspamowy widoczny na obrazku.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

Ostatnia aktualizacja: Piątek, 10. Lipiec 2009 13:59
 
 

Losowy obraz

b4.jpg

Gościmy

Naszą witrynę przegląda teraz 10 gości 




| | | |