Einzelnen Beitrag anzeigen

DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#1

Löschen einer Datei in den Papierkorb mit UNC-Pfad schlägt fehl

  Alt 27. Jan 2023, 06:39
Mir ist heute erst nach Jahren aufgefallen, dass eine Datei nicht gelöscht wird, wenn ein Pfad übergeben wird der so aussieht. Das Laufwerk ist ein Netzlaufwerk

Funktioniert >
\\nas\d1\Sub4\File1.txt

Funktioniert nicht >
\\?\UNC\nas\d1\Sub4\File1.txt

Braucht man dieses \\?\UNC Präfix heute überhaupt noch für UNC-Pfade? Oder anders gefragt: ist das Präfix was ich da im zweiten Beispiel habe überhaupt richtig? Das ist ja der TPathPrefixType "pptExtendedUNC".

Ich "lösche" solche Dateien, wenns kein Netzlaufwerk ist, in den Papierkorb mit dieser Funktion.

\\: funktioniert
pptExtended, \\?\: funktioniert nicht
pptExtendedUNC, \\?\UNC\: funktioniert nicht

Delphi-Quellcode:
function RecycleFile(sTmp: string): Boolean;
var
 SHFileOpStruct: TSHFileOpStruct;
begin
 SHFileOpStruct.Wnd := 0;
 SHFileOpStruct.wFunc := FO_DELETE;
 SHFileOpStruct.pFrom := PChar(sTmp + #0 + #0);
 SHFileOpStruct.pTo := nil;
 SHFileOpStruct.fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION or FOF_SILENT or FOF_NOERRORUI;
 SHFileOpStruct.hNameMappings := nil;
 SHFileOpStruct.lpszProgressTitle := nil;

 Result := SHFileOperation(SHFileOpStruct) = 0;
end;

Geändert von DieDolly (27. Jan 2023 um 10:47 Uhr)
  Mit Zitat antworten Zitat