|
Tutoriaux
- Gestion des fichiers |
Ce chapitre traitera de la gestion
de fichier en delphi, c'est à dire la manipulation de fichiers
en générales.
Pour cette gestion de fichiers, nous utiliserons les fonctions de l'API
de Windows.
Pour nos application, nous utiliserons comme fichier : 'c:\test.doc'.
Afficher
la boite de propriété d'un fichier |
Ajoutez un composant TButton.
Uses
ShellApi;
procedure Affichepropriete(fichier: string);
var info: TShellExecuteInfo;
begin
FillChar(info, SizeOf(info),0);
info.cbSize := SizeOf(info);
info.lpFile := PChar(fichier);
info.lpVerb := 'properties';
info.fMask := SEE_MASK_INVOKEIDLIST; ShellExecuteEx(@info);
end;
procedure TForm1.Button1Click(sender : TObject);
begin
Affichepropriete('c:\test.doc');
end; |
|
Affiche la fenêtre de propiété
du fichier 'c:\pixels.doc'.
Ajoutez un composant TButton.
procedure
TForm1.Button1Click(sender : TObject);
begin
CopyFile('c:\test.doc','c:\test2.doc',true);
end; |
|
La fonction CopyFile va copier le
fichier puis le coller.
Créer
un nouveau répertoire |
Ajoutez un composant TButton.
procedure
TForm1.Button1Click(sender : TObject);
begin
CreateDirectory('c:\test',nil);
end; |
|
Créer
un nouveau répertoire en se basant sur un autre répertoire |
Ajoutez un composant TButton.
procedure
TForm1.Button1Click(sender : TObject);
begin
CreateDirectoryEx('c:\docs','c:\test',nil);
end; |
|
Le premier répertoire spécifié
est le répertoire sur lequel la fonction se base pour créer
un nouveau répertoire ayant les même attributs.
Ajoutez
un composant TButton.
procedure
TForm1.Button1Click(sender : TObject);
begin
MoveFile('c:\test.doc','a:\test.doc');
end; |
|
Déplacer
un fichier ou un répertoire et tous ses sous-répertoires |
Ajoutez un composant TButton.
procedure
TForm1.Button1Click(sender : TObject);
begin
MoveFileEx('c:\test\','a:\test',MoveFile_Copy_Allowed);
end; |
|
Déplacer
un fichier ou un répertoire et tous ses sous-répertoires
au prochain démarrage |
Ajoutez un composant TButton.
procedure
TForm1.Button1Click(sender : TObject);
begin
MoveFileEx('c:\test\','a:\test',MoveFile_Delay_Until_Reboot);
end; |
|
Envoyer
a la corbeille un fichier |
Ajoutez un composant TButton.
procedure
FichierRecycler(s : string);
var SHFileOpStruct : TSHFileOpStruct;
begin
with SHFileOpStruct do
begin
Wnd := 0;
wFunc := FO_DELETE;
pFrom := PChar(s+#0+#0);
pTo := nil;
fFlags := FOF_ALLOWUNDO;
hNameMappings := nil;
lpszProgressTitle := nil;
end;
SHFileOperation(SHFileOpStruct);
end;
procedure TForm1.Button1Click(sender : TObject);
begin
FichierRecycler('c:\test.doc');
end; |
|
Ajoutez un composant TButton.
procedure
TForm1.Button1Click(sender : TObject);
begin
RenameFile('c:\test.doc','c:\test2.doc');
end; |
|
Le premier fichier correspond au
fichier renommé et le deuxième fichier correspond au nouveau
nom du fichier.
Il convient que le fichier qui va être
supprimer soit fermer.
Ajoutez un composant TButton.
procedure
TForm1.Button1Click(Sender: TObject);
begin
DeleteFile('c:\test.doc');
end; |
|
Supprimer
la liste des fichiers se trouvant dans le menu Documents de Windows |
Ajoutez un composant TButton.
uses
ShlObj;
procedure TForm1.Button1Click(Sender: TObject);
begin
SHAddToRecentDocs(0,nil);
end; |
|
Obtenir
la taille d'un fichier |
Ajoutez un composant TButton et TLabel.
function
TailleFichier(fichier: string): longint;
var SearchRec:TSearchRec;
Resultat:integer;
begin
// fonction renvoyant la taille du fichier
en Octets
Result:=0;
Resultat:=FindFirst(fichier, FaAnyFile, SearchRec);
if Resultat=0 then
Result:=SearchRec.Size;
FindClose(SearchRec);
end;
procedure TForm1.Button1Click(sender : TObject);
begin
Label1.Caption:=IntToStr(TailleFichier('c:\test.doc'));
end; |
|
Obtenir
la date de la dernière modification d'un fichier |
Ajoutez un composant TButton et TLabel.
function
DateHeureCreatFichier(fichier: string): TDateTime;
var SearchRec:TSearchRec;
Resultat:longint;
begin
Result:=0;
Resultat:=FindFirst(fichier, FaAnyFile, SearchRec);
if Resultat=0 then
Result:=FileDateToDateTime(SearchRec.Time);
FindClose(SearchRec);
end;
procedure TForm1.Button1Click(sender : TObject);
begin
Label1.Caption:=DateToStr(DateHeureCreatFichier('c:\test.doc'));
end;
|
|
Obtenir
l'heure de la dernière modification d'un fichier |
Ajoutez un composant TButton et TLabel.
Il suffit de rependre la même fonction juste
au dessus et de remplacer DateToStr par TimeToStr.
procedure
TForm1.Button1Click(sender : TObject);
begin
Label1.Caption:=TimeToStr(DateHeureCreatFichier('c:\test.doc'));
end; |
|
Supprimer
un répertoire vide |
Ajoutez un composant TButton.
procedure
TForm1.Button1Click(sender : TObject);
begin
RemoveDirectory('c:\delphi');
end; |
|
Ajoutez un composant TButton.
procedure
TForm1.vidercorbeille;
const SHERB_NOCONFIRMATION = $00000001; SHERB_NOPROGRESSUI
= $00000002;
SHERB_NOSOUND = $00000004;
type TSHEmptyRecycleBin =
function(Wnd: HWND;LPCTSTR: PChar;WORD: Word): integer;
stdcall;
var SHEmptyRecycleBin: TSHEmptyRecycleBin;
LibHandle: THandle;
begin
LibHandle := LoadLibrary(PChar('Shell32.dll'));
if LibHandle <> 0 then
@SHEmptyRecycleBin := GetProcAddress(LibHandle, 'SHEmptyRecycleBinA')
else
begin
MessageDlg('Impossible de charger Shell32.dll.', mtError,
[mbOK], 0);
Exit;
end;
if @SHEmptyRecycleBin <> nil then SHEmptyRecycleBin(Application.Handle,
'', SHERB_NOCONFIRMATION or
SHERB_NOPROGRESSUI or
SHERB_NOSOUND);
FreeLibrary(LibHandle);
@SHEmptyRecycleBin := nil;
end;
procedure TForm1.Button1Click(sender : TObject);
begin
vidercorbeille;
end; |
|
|
Vous pouvez également
utiliser pour confirmer ou non un choix de l'utilisateur, une
boite de message. |
|