Please help.Sve sam pokusao cak i sa tim da iskljucim I\o greske ali ne uspeva.Ako neko zna zivot ce mi spasti
Kako izbrisati folder koji u sebi ima fajlove?
Zaključano
Zakačeno
Obicnom rekurzijom... evo:
A koristis ovako:
Srecno
Code:
Function MyRemoveDir(sDir : String) : Boolean;
var
iIndex : Integer;
SearchRec : TSearchRec;
sFileName : String;
begin
Result := False;
sDir := sDir + '\*.*';
iIndex := FindFirst(sDir, faAnyFile, SearchRec);
while iIndex = 0 do begin
sFileName := ExtractFileDir(sDir)+'\'+SearchRec.Name;
if SearchRec.Attr = faDirectory then begin
if (SearchRec.Name <> '' ) and
(SearchRec.Name <> '.') and
(SearchRec.Name <> '..') then
MyRemoveDir(sFileName);
end else begin
if SearchRec.Attr <> faArchive then
FileSetAttr(sFileName, faArchive);
if NOT DeleteFile(sFileName) then
ShowMessage('Ne mogu da obrisem ' + sFileName);
end;
iIndex := FindNext(SearchRec);
end;
FindClose(SearchRec);
RemoveDir(ExtractFileDir(sDir));
Result := True;
end;
Function MyRemoveDir(sDir : String) : Boolean;
var
iIndex : Integer;
SearchRec : TSearchRec;
sFileName : String;
begin
Result := False;
sDir := sDir + '\*.*';
iIndex := FindFirst(sDir, faAnyFile, SearchRec);
while iIndex = 0 do begin
sFileName := ExtractFileDir(sDir)+'\'+SearchRec.Name;
if SearchRec.Attr = faDirectory then begin
if (SearchRec.Name <> '' ) and
(SearchRec.Name <> '.') and
(SearchRec.Name <> '..') then
MyRemoveDir(sFileName);
end else begin
if SearchRec.Attr <> faArchive then
FileSetAttr(sFileName, faArchive);
if NOT DeleteFile(sFileName) then
ShowMessage('Ne mogu da obrisem ' + sFileName);
end;
iIndex := FindNext(SearchRec);
end;
FindClose(SearchRec);
RemoveDir(ExtractFileDir(sDir));
Result := True;
end;
A koristis ovako:
Code:
if NOT MyRemoveDir('D:\myDir') then
ShowMessage('Ne mogu da obrisem folder!');
if NOT MyRemoveDir('D:\myDir') then
ShowMessage('Ne mogu da obrisem folder!');
Srecno
Potpis
Ljudi pravim sa jos jednim drugom file manager-a i zapeli smo kod kopiranja foldera, kopiranja fajlova(celog fajla, a ne samo sadrzaja). Ako neko moze da mi pomogne neka postavi kod ako mu nije tesko! Unapred hvala!!!
PS. Hvala za delete folder...
PS. Hvala za delete folder...
Za kopiranje foldera mozes koristiti istu rekurziju, samo promeni ime funkcije i svuda gde imas funkciju za brisanje fajla/foldera, stavi kopiranje fajla odnosno kreiranje foldera. A ovo za kopiranje *celog* fajla a ne samo sadrzaja ne razumem.
Potpis
I kako bi ona izgledala(funkcija za kopiranje foldera sa fajlovima)?Kopiranje fajlova je veoma prosto koristio sam komandu CopyFile(sorce, destination, true).Unapred hvala!!!
Pa rekao sam ti vec:
Izgledala bi slicno:
Ovo ti je pseudo-code
testiraj, probaj, ... mene mrzi da pisem funkciju koja ce da radi, nemam vremena, ali ako u'vatim vremena pokusacu da napisem
Citat:
JaHvram: Za kopiranje foldera mozes koristiti istu rekurziju, samo promeni ime funkcije i svuda gde imas funkciju za brisanje fajla/foldera, stavi kopiranje fajla odnosno kreiranje foldera. A ovo za kopiranje *celog* fajla a ne samo sadrzaja ne razumem.
Izgledala bi slicno:
Code:
function CopyDir(source,dest:string):boolean;
var
...
begin
...
if NOT CopyFileFile( ... ) then
ShowMessage('Ne mogu da kopiram ' + sFileName);
...
ForceDirectories(ExtractFileDir(sDir)); // valjda tako beshe func...
Result := True;
end;
function CopyDir(source,dest:string):boolean;
var
...
begin
...
if NOT CopyFileFile( ... ) then
ShowMessage('Ne mogu da kopiram ' + sFileName);
...
ForceDirectories(ExtractFileDir(sDir)); // valjda tako beshe func...
Result := True;
end;
Ovo ti je pseudo-code