Hallo,
ich habe ein kleines Problem mit der Funktion "FindFirst" in einer Delphi-Applikation, die als Dienst läuft.
Hier versuche ich alle Textdateien in einem Verzeichnis zu finden und z.B. zu löschen.
Dies funktioniert auch einwandfrei. Nur, wenn ich als Suchpfad ein Netzwerkpfad übergebe, funktioniert das alles nicht mehr.
Nun habe ich schon herausgefunden, dass ein Netzlaufwerk so nicht funktioniert, da dieser an den Benutzer gebunden ist.
Aber ein UNC-Pfad sollte ja eigentlich schon funktionieren...
Code-Ausschnitt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| function fnDeleteFile (strPara1 : string; nPara1 : integer): integer; var nReturn : integer; srDateien : TSearchRec; begin nReturn := FindFirst (strPara1, faAnyfile - faDirectory, srDateien); if nReturn = 0 then begin repeat if (srDateien.Name<>'.') and (srDateien.Name<>'..') then begin end; until FindNext(srDateien)<>0; end; end; |
Für
strPara1 := 'D:\*.txt' funktionirt alles gut, ich bekomme alle Textdateien aus dem Verzeichnis.
Für
strPara1 := 'Y:\*.txt' (wobei Y: ein verbundenes Netzlaufwerk darstellt) funktioniert es nicht (nReturn = -1)
Für
strPara1 := '\\<PC-Name>\<Freigabe>\*.txt (wobei die Freigabe alle Rechte hat und auf Y: verweist auch nicht (nReturn = -1).
Es muss irgendwas mit dem Dienst zu tun haben, da ich das Genze auch mal in eine "normale" Delphi-App eingebaut habe, wo alles (auch mit Netzlaufwerken und Freigaben) einwandfrei funktioniert...
Über irgendeienn Tip wäre ich dankbar.
Gruß, Mirko