![]() |
Löschen einer Datei in den Papierkorb mit UNC-Pfad schlägt fehl
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 >
Delphi-Quellcode:
\\nas\d1\Sub4\File1.txt
Funktioniert nicht >
Delphi-Quellcode:
\\?\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; |
AW: Löschen einer Datei mit UNC-Pfad schlägt fehl
Was gibt denn Result zurück, wenn eine Datei nicht gelöscht werden konnte?
|
AW: Löschen einer Datei mit UNC-Pfad schlägt fehl
Doe Doku von MS sagt unter
![]() Zitat:
|
AW: Löschen einer Datei mit UNC-Pfad schlägt fehl
SHFileOperation geht nicht ohne UNC-Prefixe, das ist schlecht.
Ich habe bisher noch keine andere Funktion gefunden, die in den Papierkorb löschen kann, gibt es das ohne SHFileOperation überhaupt? |
AW: Löschen einer Datei mit UNC-Pfad schlägt fehl
Hallo,
Papierkorb leeren ![]() Oder meintet Du das Löschen "im" Papierkorb. |
AW: Löschen einer Datei mit UNC-Pfad schlägt fehl
Ich glaube ich habe mich missverständlich ausgedrückt. Nicht den Papierkorb löschen sondern in den Papierkorb löschen.
|
AW: Löschen einer Datei in den Papierkorb mit UNC-Pfad schlägt fehl
Hallo,
"in" oder "im" "in": Löschen und Verschieben in den Papierkorb "im": Löschen einer Datei im Papierkorb (also endgültig löschen) ? |
AW: Löschen einer Datei in den Papierkorb mit UNC-Pfad schlägt fehl
In, nicht im.
Die Datei ist in irgendeinem Verzeichnis und ich möchte die in den Papierkorb löschen. Funktioniert ja auch, aber leider nicht mit UNC-Pfaden vorne dran wiue \\?\ und \\?\UNC. Ich glaube UNC-Pfade brauchte man früher für Lange Pfade oder sowas. Deswegen habe ich alles damals so umgestellt, dass intern nur mit UNC-Pfaden gewerkelt wird. Probleme gibt es, bis auf dass ich nicht in den Papierkorb löschen kann, keine. |
AW: Löschen einer Datei in den Papierkorb mit UNC-Pfad schlägt fehl
Es gibt nicht den einen Papierkorb. Jedes Volume hat seinen eigenen Papierkorb. Eigentlich hat sogar jeder Nutzer seinen eigenen Papierkorb auf jedem einzelnen Volume - siehe versteckte Verzeichnisse $Recycle.bin und Recycler auf einem beliebigen Volume. Dateien, die ein Nutzer in den Papierkorb schiebt, kann kein anderer Nutzer sehen (oder endgültig löschen). Aber das führt wohl etwas zu weit.
Dateien, die in den Papierkorb verschoben werden, landen im Papierkorb des jeweiligen Volumes. Bei UNC-Pfaden kann sowas nur dann funktionieren, wenn der Server irgendwie mitspielt und das eigentliche Verschieben in den Papierkorb übernimmt. Ich meine mich zu erinnern, dass es auch bei SMB-Servern Papierkörbe geben kann, sofern man es explizit einschaltet. Wo und wie das geht, weiß ich aber nicht. Grüße Dalai |
AW: Löschen einer Datei in den Papierkorb mit UNC-Pfad schlägt fehl
Zitat:
Das kann auch
Delphi-Quellcode:
sein.
\\?\D:\Test\test.txt
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz