Jak zrobić program któruy będzie wyszukiwał puste Foldery i Usuwał JE.
W Easy Cleaner, jest List Box, jeśli usunę wiesz to ma się usunąć pusty katalog.--Delphi 2 , 6 i 5
Ciekawe pomysły i poszukiwanie rozwiązań.
Jak zrobić program któruy będzie wyszukiwał puste Foldery i Usuwał JE.
W Easy Cleaner, jest List Box, jeśli usunę wiesz to ma się usunąć pusty katalog.--Delphi 2 , 6 i 5
Ciekawe pomysły i poszukiwanie rozwiązań.
To powinno działać i wyszukuje puste katalogi, ale za nic nie chce go usunąć ;(
procedure TForm1.ZnajdzPlik(Sciezka,NazwaPliku:String);
var
FSearchRec,DSearchRec:TSearchRec;
FindResult, liczba:integer;
function GetDirectoryName(Dir:String):String;
begin
if Dir[Length(Dir)]<>'\' then
Result:=dir+'\'
else
Result:=Dir;
end;
function IsDirNotation(AdirName:String):Boolean;
begin
Result:=(AdirName='.') or (AdirName='..');
end;
begin
Sciezka:=GetDirectoryName(Sciezka);
liczba:=0;
FindResult:=FindFirst(Sciezka+NazwaPliku,faAnyFile+faHidden+faSysFile+faReadOnly+faDirectory,FSearchRec);
try
while FindResult = 0 do
begin
Inc(liczba);
Memo1.Lines.Add(Sciezka+FsearchRec.Name);
FindResult:=FindNext(FSearchRec);
end;
if liczba<=2 then begin
Delete(sciezka,length(sciezka),1);
RemoveDir(sciezka); //dlaczego to nie usuwa?????????
end;
FindResult:=FindFirst(Sciezka+'.',faDirectory,DSearchRec);
while FindResult=0 do
begin
if ((DSearchRec.Attr and faDirectory)=faDirectory) and not IsDirNOtation(DSearchRec.Name) then
ZnajdzPlik(Sciezka+DSearchRec.Name,NazwaPliku);
FindResult:=FindNext(DSearchRec);
end;
finally
FindClose(FSearchRec);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ZnajdzPlik('c:\temp','.');
end;
Może znajdziesz rozwiązanie problemu. Ja mogę tylko tyle Ci pomóc--Jest jeszcze jeden błąd ... :)
Ja ci moge napisac jak usunac katalogi uzywajac starego i dobrego dosa :-) A wiec:
var
f:textfile;
begin
assignfile(f,'c:\zabijkataloi.bat');
rewrite(f);
writeln(f, 'rm '+sciezkakatalogu);*jezeli katalog jest pusty to zostanie usuniety a jak nie to zostanie
writeln(f,...)*dodajesz tyle katalogow ile chcesz
closefile(f);
winexec('c:\zabijkataloi.bat',sw_hide);
end;
pislaem z pamieci wiec pewnie sa jakies bledy ale ten pomysl jest dobry (tak mi sie wydaje) :-) nie pytaj sie mnie jak zdobyc liste katalogw.
--
pozdrawiam PEDROS {hello}
PROPAGANDA: Uzywajcie irca i badzcie na kanale 4programmers.net
Delphi6
Dryobates: A u mnie usuwa...
Czy do manipulowania koncowym \ nie lepiej uzywac gotowych funkcji:
IncludeTrailingPathDelimiter
ExcludeTrailingPathDelimiter
IsPathDelimiter
itd?
--
Pawel {Delphi6 }
Po pierwsze: naciśnij F1
pq napisał:
Dryobates: A u mnie usuwa...
>
>Czy do manipulowania koncowym \ nie lepiej uzywac gotowych funkcji:
>IncludeTrailingPathDelimiter
>ExcludeTrailingPathDelimiter
>IsPathDelimiter
>
>itd?
U mnie nie usuwa ;( , może dlatego, że mam WinXP :[[
A z tych funkcji to jest tylko IsPathDelimiter
Ale znalazłem
IncludeTrailingBackslash
ExcludeTrailingBackslash
Ale dzięki, że o czymś takim mi powiedziałeś. Nigdy wcześniej nie korzystałem z tych funkcji. Człowiek uczy się przez całe życie. (a conajmniej połowy potrzebuje, żeby przeczytać całą pomoc :) )--Jest jeszcze jeden błąd ... :)
Z mojego helpa na temat IncludeTrailingBackslash:
IncludeTrailingBackslash ensures that a path name ends with a trailing path delimiter ('\'). This function is included for backward-compatibility only. New programs should use IncludeTrailingPathDelimiter.
Nie znalazles? Moze masz Delphi <6 ?
Pozdrawiam--Pawel {Delphi6 }
Po pierwsze: naciśnij F1
pq napisał:
>Nie znalazles? Moze masz Delphi <6 ?
Delphi 5 Standard ;( ;( ;( ;(
Stanę na głowie, ale zdobędę Delphi 6 Enterprise :D
Jest jeszcze jeden błąd ... :)
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.