[16:19] <WhizzCat> de zon heeft nog maar 5 miljard jaar te leven naar het schijnt
[16:19] <WhizzCat> dus schiet op met dat protocol Chimera :p
Ok, bedankt, dit is wat ik nu heb:
Maar dan delete ie alleen de FILES die er in staan, maar ik wil ook de SUBDIRECTORIES (Oh ik zie nu dat ik dat niet had gevraagd
)
code:
1
2
3
4
5
6
7
8
9
10
| procedure TForm1.Button1Click(Sender: TObject); var SRec: TSearchRec; begin If FindFirst(Label1.Caption + '*.*', faAnyFile, SRec) = 0 Then begin DeleteFile(Label1.Caption + SRec.Name); While FindNext(SRec) = 0 Do DeleteFile(Label1.Caption + SRec.Name); FindClose(SRec); end; end; |
Maar dan delete ie alleen de FILES die er in staan, maar ik wil ook de SUBDIRECTORIES (Oh ik zie nu dat ik dat niet had gevraagd
[16:19] <WhizzCat> de zon heeft nog maar 5 miljard jaar te leven naar het schijnt
[16:19] <WhizzCat> dus schiet op met dat protocol Chimera :p
Beetje creativiteit kan geen kwaad lijkt me toch?
Je zult dus een van de FindFirst opties moeten veranderen zodat je ook directories krijgt.
Pseudo-code:
Misschien is de recursieve oplossing niet echt de beste, maar goed het is in ieder geval een idee.
Je zult dus een van de FindFirst opties moeten veranderen zodat je ook directories krijgt.
Pseudo-code:
code:
1
2
3
4
5
6
| Functie WisDirectory(dirNaam) {
Voor elke ingang [i]entry[/i] in directory [i]dirNaam[/i] {
Is [i]ingang[/i] een directory? --> WisDirectory(ingang)
Is [i]ingang[/i] een file? --> WisFile(ingang)
}
} |
Misschien is de recursieve oplossing niet echt de beste, maar goed het is in ieder geval een idee.
|_____vakje______|
Ja ok maar wat is dan de code om een dir te wissen? Want in die dir kunnen ook weer files zitten. DeleteDir() bestaat niet.
[16:19] <WhizzCat> de zon heeft nog maar 5 miljard jaar te leven naar het schijnt
[16:19] <WhizzCat> dus schiet op met dat protocol Chimera :p
Verwijderd
Lijkt me dat daar wel iets van in de windows-api te vinden is.
Tool->Internet options->Clear history komt ook een heel eind
Tool->Internet options->Clear history komt ook een heel eind
Verwijderd
hier een stukje code wat ongeveer hetzelfde doet maar ipv deleten copieren
ook kijkt ie of er een bestandje open is en zit er een hoop extra code in die je gewoon mag weghalen
ook kijkt ie of er een bestandje open is en zit er een hoop extra code in die je gewoon mag weghalen
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| procedure Tform1.zoekdir(pad, topad : string ) ;
var
sr : tsearchrec ;
r : integer ;
begin
r := findfirst(pad + '\*.*', faanyfile, sr);
while r = 0 do
begin
statusbar1.Panels.Items[0].Text := sr.name;
statusbar1.Update;
if (sr.name <> '.') and (sr.name <> '..') then
begin
if (sr.attr <> 0) and (fadirectory <> 0) then
begin
if not DirectoryExists (topad ) then
begin
ForceDirectories(topad );
memo1.lines.Append('directory created : ' + topad) ;
application.processmessages ;
end;
zoekdir(pad +'\'+sr.name, topad + '\'+ sr.name) ;
end;
end;
if FileAge(topad + '\'+ sr.name) <> fileage(pad +'\' + sr.name) then
begin
if openfilecheck(pad + '\' + sr.name) = true then
begin
CopyFile(pchar(pad + '\' + sr.name),pchar(topad+ '\' + sr.name),FALSE);
memo1.lines.append('file created : ' + topad + '\' + sr.name) ;
application.processmessages;
end;
end;
r := findnext(Sr)
end;
findclose(sr);
end; |
Verwijderd
De luie methode: laat de Windows Shell API het werk opknappen. 
Door fFlags te veranderen heb je nog opties om het wel naar de prullenbak te verplaatsen of om zo'n mooi venstertje met vliegende documentjes te laten zien
.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| uses ShellApi;
function deldir(dir: String): boolean;
var fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do
begin
wFunc := FO_DELETE;
fFlags := FOF_SILENT or FOF_NOCONFIRMATION;
pFrom := PChar(dir);
end;
Result:=(0=ShFileOperation(fos));
end; |
Door fFlags te veranderen heb je nog opties om het wel naar de prullenbak te verplaatsen of om zo'n mooi venstertje met vliegende documentjes te laten zien
Pagina: 1