Copiați și ștergeți fișierele din Delfi, diverse articole, articole, programare - programare

În cel mai simplu caz, o chestiune de copiere a fișierelor este foarte ușor (deși au primit numeroase cereri de a vorbi despre ea)! Este suficient să se uite în ajutorul Delphi :))

Parametrii trecut la această funcție:
  1. Un pointer la numele unui fișier existent (șir terminat-nul, care este tipul PChar!)
  2. Un pointer la numele fișierului care va fi creat / suprascrise după copiere (șir de caractere terminat-nul, care este tipul PChar!)
  3. Dacă această opțiune este adevărat, și un fișier cu același nume există deja, funcția returnează False. Dacă un fișier cu numele specificat în al doilea parametru există ca al treilea parametru a trecut la False - funcția va suprascrie fișierul și va fi finalizat cu succes.

Aici este un mic exemplu de utilizare a acestei funcții. Creați discul C: \ '1.txt' dosar. și forma butonului set:

Pentru a afla mai exact atunci când apare o eroare, este la fel a avut loc, este necesar să se utilizeze funcția GetLastError. care returneaza ultimul cod de eroare (format DWORD). Acum vom modifica ușor exemplul:

Astfel, apăsarea butonului a doua oară, vom primi un mesaj: „Eroare Iată codul: 80“. Acest lucru ne spune că există fișierul.

Codurile de erori pot fi ușor de găsit în ajutor.

Pentru aprofundarea problemei va da un exemplu pentru a copia fișiere prin utilizarea unui flux de fișier (TFileStream). Funcția de tabelă definite de utilizator a introdus doi parametri suplimentari Din și Count, care indică, respectiv, de ce și pentru ce octeți pentru a copia fișierul. Dacă aveți nevoie să copiați întregul fișier, trebuie să transferați zerouri. Aici este codul acestei funcții:

Pentru a șterge fișierele din Delphi ca o procedură specială DeleteFile. Ca un parametru a trecut la funcția, acționează ca un tip de șir PChar, indicând numele fișierului pe care doriți să-l ștergeți. Imediat vă ofer un exemplu simplu de utilizare a acestei funcții:

Procedura TForm1.Button1Click (Expeditor: TObject);
începe
dacă DeleteFile ( 'c: \ 2.txt'), atunci
ShowMessage ( 'Fișierul a fost șters cu succes!')
altfel
ShowMessage ( 'eroare care este codul :!' + IntToStr (GetLastError));
se încheie;

Eliminarea unui director gol

Pentru a elimina un director gol cu ​​Delphi suficient pentru a face apel la funcția RemoveDir.

Funcția RemoveDir (const Dir: string): Boolean;

Această funcție returnează Adevărat dacă directorul specificat în parametrul unic trecut să funcționeze eliminat cu succes, în caz contrar funcția returnează False.

Este adesea necesar pentru a elimina un dosar care nu este gol, care nu conține numai fișiere, ci și alte subfoldere. Pentru această funcție definită de utilizator a fost scris, șterge foldere cu toate fișierele și subdirectoarele. Aici este:

Funcția MyRemoveDir (sDir. String). boolean;
var
iIndex. integer;
SearchRec. TSearchRec;
sFileName. string;
începe
Rezultat: = false;
sDir: = sDir + '\ * *';
iIndex: = FindFirst (sDir, faAnyFile, SearchRec);

în timp ce iIndex = 0 nu începe
sFileName: = ExtractFileDir (sDir) + '\' + SearchRec.Name;
dacă SearchRec.Attr = faDirectory începe atunci
în cazul în care (SearchRec.Name <> „“) Și
(SearchRec.Name <> '') Și
(SearchRec.Name <> '..') atunci
MyRemoveDir (sFileName);
termina altceva începe
dacă SearchRec.Attr <> faArchive apoi
FileSetAttr (sFileName, faArchive);
în cazul în care nu DeleteFile (sFileName), atunci
ShowMessage ( 'nu a putut șterge' + sFileName);
se încheie;
iIndex: = FindNext (SearchRec);
se încheie;

RemoveDir (ExtractFileDir (sDir));
Rezultat: = true;
se încheie;

Acum, un exemplu de utilizare a acestei funcții:

Procedura TForm1.Button1Click (Expeditor: TObject);
începe
în cazul în care MyRemoveDir ( 'C: \ testDir'), apoi ShowMessage ( 'director a fost șters cu succes')
ShowMessage altceva ( „Nu pot șterge directorul“);
se încheie;

  • Întotdeauna asigurați-vă că numele de fișier care sunt utilizate în funcțiile. Fiți atenți la căile absolute și relative. Din acest motiv, de multe ori există erori care sunt dificil de a ține evidența!
  • Ei bine, asta e, probabil, tot ce aș vrea să vă spun despre copierea și ștergerea în Delphi.