/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Sletning af filer i en bestemt mappe
Fra : Torsten T. Nielsen


Dato : 31-12-01 01:08

Hej

Jeg søger en stump kode, som kan slette ALLE filer i en bestemt mappe!

Jeg kan bare ikke få det til at virke!

Nogen der vil hjælpe mig?!?!

MVH Torsten



 
 
PL (31-12-2001)
Kommentar
Fra : PL


Dato : 31-12-01 01:17

Hej Torsten

Here you are Sir:
Tilpas den efter dine egne ønsker 'SHFileOperation' kan både hækle og
brodere, når det gælder Remove, Copy, Move etc.

MEEEEN !!!!!! Pas på !!!!
Nedenstående funktion fjerner hele Mappen m/indhold OG DER INGEN PAPIRKURV
BAGEFTER.

En lille historie.
Jeg har engang defineret Path forkert og slettede en mappe, hvor alle mine
Sourcefiles lå (et års arbejde). Heldigvis havde jeg en 2 dage gammel kopi
liggende på en anden PCer.
Derfor fløøøj jeg ud og købte mig en CD-ROM brænder samme aften - puuh-ha
!!!

PL

function PFURemoveDir(Path:String):Boolean;
var FOS: TSHFileOpStruct;
var MemFrom :Array[0..max_path] of Char;
begin
Result := False;
While Copy(Path,Length(Path),1)='\' do System.Delete(Path,Length(Path),1);
Try
if not DirectoryExists(Path) then begin
Result := True;
exit;
end;
except end;
with FOS do begin
Wnd := Application.Handle;
wFunc := FO_DELETE;
FillChar(MemFrom, SizeOf(MemFrom), #0);
StrPCopy(MemFrom, Path+#0);
pFrom := MemFrom;
pTo := nil;
fFlags := FOF_NOCONFIRMATION or FOF_SILENT;
end;
{$I-}
Result := SHFileOperation(FOS)=0;
{$I+}
SetLastError(0);
end;




Steen Jensen (31-12-2001)
Kommentar
Fra : Steen Jensen


Dato : 31-12-01 09:14


PL skrev i meddelelsen ...
>Hej Torsten
>
>MEEEEN !!!!!! Pas på !!!!
>Nedenstående funktion fjerner hele Mappen m/indhold OG DER INGEN PAPIRKURV
>BAGEFTER.
>

Man kan evt. sætte FOF_ALLOWUNDO flaget på også, så fFlags bliver
FOF_NOCONFIRMATION or FOF_SILENT or FOF_ALLOWUNDO
så kan man hente dem op fra papirkurven igen

Med venlig hilsen
Steen




Torsten T. Nielsen (31-12-2001)
Kommentar
Fra : Torsten T. Nielsen


Dato : 31-12-01 12:16

Hej

Jeg ved ikke hvad der er galt, men Delphi skriver:
Undeclared identifier: 'TSHFileOpStruct'

Er der noget jeg har glemt i USES???

MVH Torsten
"Steen Jensen" <steen.jensen@mail.dk> skrev i en meddelelse
news:3c301e76$0$94875$edfadb0f@dspool01.news.tele.dk...
>
> PL skrev i meddelelsen ...
> >Hej Torsten
> >
> >MEEEEN !!!!!! Pas på !!!!
> >Nedenstående funktion fjerner hele Mappen m/indhold OG DER INGEN
PAPIRKURV
> >BAGEFTER.
> >
>
> Man kan evt. sætte FOF_ALLOWUNDO flaget på også, så fFlags bliver
> FOF_NOCONFIRMATION or FOF_SILENT or FOF_ALLOWUNDO
> så kan man hente dem op fra papirkurven igen
>
> Med venlig hilsen
> Steen
>
>
>



Torsten T. Nielsen (31-12-2001)
Kommentar
Fra : Torsten T. Nielsen


Dato : 31-12-01 12:17

Hej

Jeg prøvede med ShellApi, og det virker nu, men den næste fejl er:
Undeclared Indentifier: Directoryexists

Jeg bruger flg. kode:
function PFURemoveDir(Path:String):Boolean;
var FOS: TSHFileOpStruct;
var MemFrom :Array[0..max_path] of Char;
begin
Result := False;
While Copy(Path,Length(Path),1)='\' do System.Delete(Path,Length(Path),1);
Try
if not DirectoryExists(Path) then begin
Result := True;
exit;
end;
except end;
with FOS do begin
Wnd := Application.Handle;
wFunc := FO_DELETE;
FillChar(MemFrom, SizeOf(MemFrom), #0);
StrPCopy(MemFrom, Path+#0);
pFrom := MemFrom;
pTo := nil;
fFlags := FOF_NOCONFIRMATION or FOF_SILENT;
end;
{$I-}
Result := SHFileOperation(FOS)=0;
{$I+}
SetLastError(0);
end;
"Steen Jensen" <steen.jensen@mail.dk> skrev i en meddelelse
news:3c301e76$0$94875$edfadb0f@dspool01.news.tele.dk...
>
> PL skrev i meddelelsen ...
> >Hej Torsten
> >
> >MEEEEN !!!!!! Pas på !!!!
> >Nedenstående funktion fjerner hele Mappen m/indhold OG DER INGEN
PAPIRKURV
> >BAGEFTER.
> >
>
> Man kan evt. sætte FOF_ALLOWUNDO flaget på også, så fFlags bliver
> FOF_NOCONFIRMATION or FOF_SILENT or FOF_ALLOWUNDO
> så kan man hente dem op fra papirkurven igen
>
> Med venlig hilsen
> Steen
>
>
>



Torsten T. Nielsen (31-12-2001)
Kommentar
Fra : Torsten T. Nielsen


Dato : 31-12-01 12:30

Hej igen

Jeg har fundet ud af at jeg skulle have FileCtrl med i USES...

MVH Torsten
"Torsten T. Nielsen" <torsten@nielsen.mail.dk> skrev i en meddelelse
news:3c3048f4$0$89081$edfadb0f@dspool01.news.tele.dk...
> Hej
>
> Jeg prøvede med ShellApi, og det virker nu, men den næste fejl er:
> Undeclared Indentifier: Directoryexists
>
> Jeg bruger flg. kode:
> function PFURemoveDir(Path:String):Boolean;
> var FOS: TSHFileOpStruct;
> var MemFrom :Array[0..max_path] of Char;
> begin
> Result := False;
> While Copy(Path,Length(Path),1)='\' do
System.Delete(Path,Length(Path),1);
> Try
> if not DirectoryExists(Path) then begin
> Result := True;
> exit;
> end;
> except end;
> with FOS do begin
> Wnd := Application.Handle;
> wFunc := FO_DELETE;
> FillChar(MemFrom, SizeOf(MemFrom), #0);
> StrPCopy(MemFrom, Path+#0);
> pFrom := MemFrom;
> pTo := nil;
> fFlags := FOF_NOCONFIRMATION or FOF_SILENT;
> end;
> {$I-}
> Result := SHFileOperation(FOS)=0;
> {$I+}
> SetLastError(0);
> end;
> "Steen Jensen" <steen.jensen@mail.dk> skrev i en meddelelse
> news:3c301e76$0$94875$edfadb0f@dspool01.news.tele.dk...
> >
> > PL skrev i meddelelsen ...
> > >Hej Torsten
> > >
> > >MEEEEN !!!!!! Pas på !!!!
> > >Nedenstående funktion fjerner hele Mappen m/indhold OG DER INGEN
> PAPIRKURV
> > >BAGEFTER.
> > >
> >
> > Man kan evt. sætte FOF_ALLOWUNDO flaget på også, så fFlags bliver
> > FOF_NOCONFIRMATION or FOF_SILENT or FOF_ALLOWUNDO
> > så kan man hente dem op fra papirkurven igen
> >
> > Med venlig hilsen
> > Steen
> >
> >
> >
>
>



Torsten T. Nielsen (01-01-2002)
Kommentar
Fra : Torsten T. Nielsen


Dato : 01-01-02 21:46

Hej

Nu har jeg fået det til at virke, men jeg var ikke klar over at koden også
sletter mappen...

Det er ikke meningen - hvordan nøjes jeg med at slette filerne???

MVH Torsten
"Torsten T. Nielsen" <torsten@nielsen.mail.dk> skrev i en meddelelse
news:3c304c05$0$89116$edfadb0f@dspool01.news.tele.dk...
> Hej igen
>
> Jeg har fundet ud af at jeg skulle have FileCtrl med i USES...
>
> MVH Torsten
> "Torsten T. Nielsen" <torsten@nielsen.mail.dk> skrev i en meddelelse
> news:3c3048f4$0$89081$edfadb0f@dspool01.news.tele.dk...
> > Hej
> >
> > Jeg prøvede med ShellApi, og det virker nu, men den næste fejl er:
> > Undeclared Indentifier: Directoryexists
> >
> > Jeg bruger flg. kode:
> > function PFURemoveDir(Path:String):Boolean;
> > var FOS: TSHFileOpStruct;
> > var MemFrom :Array[0..max_path] of Char;
> > begin
> > Result := False;
> > While Copy(Path,Length(Path),1)='\' do
> System.Delete(Path,Length(Path),1);
> > Try
> > if not DirectoryExists(Path) then begin
> > Result := True;
> > exit;
> > end;
> > except end;
> > with FOS do begin
> > Wnd := Application.Handle;
> > wFunc := FO_DELETE;
> > FillChar(MemFrom, SizeOf(MemFrom), #0);
> > StrPCopy(MemFrom, Path+#0);
> > pFrom := MemFrom;
> > pTo := nil;
> > fFlags := FOF_NOCONFIRMATION or FOF_SILENT;
> > end;
> > {$I-}
> > Result := SHFileOperation(FOS)=0;
> > {$I+}
> > SetLastError(0);
> > end;
> > "Steen Jensen" <steen.jensen@mail.dk> skrev i en meddelelse
> > news:3c301e76$0$94875$edfadb0f@dspool01.news.tele.dk...
> > >
> > > PL skrev i meddelelsen ...
> > > >Hej Torsten
> > > >
> > > >MEEEEN !!!!!! Pas på !!!!
> > > >Nedenstående funktion fjerner hele Mappen m/indhold OG DER INGEN
> > PAPIRKURV
> > > >BAGEFTER.
> > > >
> > >
> > > Man kan evt. sætte FOF_ALLOWUNDO flaget på også, så fFlags bliver
> > > FOF_NOCONFIRMATION or FOF_SILENT or FOF_ALLOWUNDO
> > > så kan man hente dem op fra papirkurven igen
> > >
> > > Med venlig hilsen
> > > Steen
> > >
> > >
> > >
> >
> >
>
>



Steen Jensen (02-01-2002)
Kommentar
Fra : Steen Jensen


Dato : 02-01-02 07:19

Hej

Torsten T. Nielsen skrev i meddelelsen
<3c321fe3$0$89063$edfadb0f@dspool01.news.tele.dk>...
>Hej
>
>Nu har jeg fået det til at virke, men jeg var ikke klar over at koden også
>sletter mappen...
>
>Det er ikke meningen - hvordan nøjes jeg med at slette filerne???
>

PFURemoveDir('C:\Slettes\*.*');

Med venlig hilsen
Steen




Torsten T. Nielsen (15-01-2002)
Kommentar
Fra : Torsten T. Nielsen


Dato : 15-01-02 22:25

Hvad???

Det virker ikke...

Er der nogen der kan sende lidt kode???

MVH Torsten
"Steen Jensen" <steen.jensen@mail.dk> skrev i en meddelelse
news:3c32a64a$0$89065$edfadb0f@dspool01.news.tele.dk...
> Hej
>
> Torsten T. Nielsen skrev i meddelelsen
> <3c321fe3$0$89063$edfadb0f@dspool01.news.tele.dk>...
> >Hej
> >
> >Nu har jeg fået det til at virke, men jeg var ikke klar over at koden
også
> >sletter mappen...
> >
> >Det er ikke meningen - hvordan nøjes jeg med at slette filerne???
> >
>
> PFURemoveDir('C:\Slettes\*.*');
>
> Med venlig hilsen
> Steen
>
>
>



Steen Jensen (15-01-2002)
Kommentar
Fra : Steen Jensen


Dato : 15-01-02 22:56

Hej

Torsten T. Nielsen skrev i meddelelsen
<3c449d99$0$62894$edfadb0f@dspool01.news.tele.dk>...
>Hvad???
>
>Det virker ikke...
>
>Er der nogen der kan sende lidt kode???
>
>MVH Torsten

>> Torsten T. Nielsen skrev i meddelelsen
>> <3c321fe3$0$89063$edfadb0f@dspool01.news.tele.dk>...
>> >Hej
>> >
>> >Nu har jeg fået det til at virke, men jeg var ikke klar over at koden
>også
>> >sletter mappen...
>> >
>> >Det er ikke meningen - hvordan nøjes jeg med at slette filerne???
>> >
>>

Hvis du opretter en mappe C:\Slettes og bruger denne funktion

function PFURemoveDir(Path:String):Boolean;
var
FOS: TSHFileOpStruct;
MemFrom: Array[0..max_path] of Char;
begin
with FOS do begin
Wnd := Application.Handle;
wFunc := FO_DELETE;
FillChar(MemFrom, SizeOf(MemFrom), #0);
StrPCopy(MemFrom, Path+#0);
pFrom := MemFrom;
pTo := nil;
fFlags := FOF_NOCONFIRMATION;
end;
{$I-}
Result := SHFileOperation(FOS)=0;
{$I+}
SetLastError(0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
PFURemoveDir('C:\Slettes\*.*');
end;

Bliver kun indholdet (undermapper og filer) slettet. Mappen
C:\Slettes sker der ikke noget med.

Med venlig hilsen
Steen




Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste