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:
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
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:
Code:
function fnDeleteFile (strPara1 : string; nPara1 : integer): integer; var nReturn : integer; // Funktionsergebnis srDateien : TSearchRec; // Struktur mit Dateiinformationen begin nReturn := FindFirst (strPara1, faAnyfile - faDirectory, srDateien); if nReturn = 0 then begin repeat // solange suchen... if (srDateien.Name<>'.') and (srDateien.Name<>'..') then // Wenn nicht unterverzeichnis begin // Hier was mit den Dateien machen.... end; until FindNext(srDateien)<>0; // ...bis alle durch 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
Comment