unit uOperacjeNaPlikach;
{
Podstawowymi
operacjami na plikach są: kopiowanie, usuwanie, przenoszenie, zmiana
nazwy oraz tworzenie ich. W tym artykule chcę je nieco przybliżyć. Do
wykonywania tych operacji można się posłużyć funkcją ShellApi, ale ja
wolę przytoczyć tutaj trochę prostsze i zarazem krótsze funkcje.
Kopiowanie
Bardzo prosta funkcja kopiowania ma postać:
CopyFile(IpExistingFileName:PansiChar; IpNewFileName:PansiChar; bFailIfExists:LongBool);
|
IpExistingFileName - scieżka pliku, który chcemy skopiować
IpNewFileName - ścieżka, gdzie chcemy skopiować plik
BFailIfExists - jeżeli posiada wartość true to nie nadpisuje pliku jeżeli ten istnieje
Uwaga!
do scieżki, gdzie chcemy skopiować plik trzeba dodać jego nazwę, np. 'c:\a.txt', a nie 'C:\'
Przykład:
Założenia: chcę skopiować plik 'C:\a.txt' do folderu 'E:\Programy'
CopyFile('C:\a.txt','E:\Programy\a.txt',true);
|
Usuwanie
Funkcja nie powinna być trudna do zrozumienia:
DeleteFile(const FileName:string);
|
const FileName - ścieżka pliku, który chcemy skasować
Przykład:
Założenia: chcę skasować plik 'C:\a.txt'
Przenoszenie
Plik można przenieść funkcją
MoveFile(IpExistingFileName:PansiChar;IpNewFileName:PansiChar);
|
IpExistingFileName - scieżka pliku, który chcemy przenieść
IpNewFileName - ścieżka, gdzie chcemy przenieść plik
Przykład:
Założenia: chcę przenieść plik 'C:\a.txt' do folderu 'E:\Programy'
MoveFile('C:\a.txt', 'E:\ a.txt');
|
Zmiana Nazwy
Można by się tu posłużyć funkcją CopyFile(skopiować
plik do tej samej lokacji pod inną nazwą, a następnie usunąć starą
wersję funkcją DeleteFile), albo przenieść go do tej samej lokalizacji
za pomocą funkcji MoveFile, ale istnieje specjalna funkcja stworzona do
zmiany nazwy pliku:
RenameFile(const OldName:string; const NewName:string);
|
const OldName - ścieżka ze starą nazwą pliku
const NewName - ścieżka z nową nazwą pliku
Przykład:
Założenia: chcę zmienić nazwę pliku 'C:\a.txt' na 'b.txt'
|
RenameFile('C:\a.txt','C:\b.txt');
|
Uwaga!
Funkcja RenameFile może też działać jak MoveFile. Gdyby w powyższym przykładzie podać inną ścieżkę plik zostałby przeniesiony.
Tworzenie pliku
Do tworzenia nowych plików służy funkcja
|
CreateFile(IpFileName: PansiChar; dwDesiredAccess: Cardinal;
dwShareMode: Cardinal; IpSecurityAttributes: PsecurityAttributes;
dwCreationDisposites: Cardinal; dwFlagsAndAttributes: Cardinal;
hTemplateFile: Cardinal)
|
IpFileName:PansiChar - ścieżka nowego pliku i jego typ
DwFlagsAndAttributes - atrybuty:
0-Archiwalny
1- Tylko do odczytu, archiwalny
2- Ukryty, archiwalny
3- Tylko do odczytu, archiwalny, ukryty
4- Archiwalny, blokada ukryty
5- Tylko do odczytu, archiwalny, blokada ukryty
Przykład:
Założenia: chcę stworzyć plik 'C:\a.txt' z atrybutami archiwalny, blokada ukryty
CreateFile('c:\a.txt',0,0,nil,1,4,0);
|
Dodatkowe uwagi
Gdyby przypisać jakąś ścieżkę pliku do zmiennej string a następnie podać tą ścieżkę w funkcji wyskoczy błąd.
Aby temu zapobieć nalerzy tą zmienną przekonwertować na zmienną Char, za pomocą funkcji PChar(string).
Przykład:
var
s:string;
begin
s:=edit1.text + 'a.txt';
CopyFile('E:\a.txt',PChar(s),true;
end;
|
Autor: Michał Łoński
|