Ich habe ein Stück Code, der die DeleteFile-Methode in der Microsoft.VisualBasic.FileIO.FileSystem-Klasse (in der Microsoft.VisualBasic-Assembly) in aufgerufen um die Datei in den Papierkorb zu senden, anstatt sie endgültig zu löschen. Dieser Code befindet sich in einem verwalteten Windows-Dienst und wird auf einem Win Server 2k8-Computer (32-Bit) ausgeführt.Datei in recyclebin in csharp löschen mit VB FileSystem.DeleteFile Methode funktioniert nicht richtig
Die entsprechende Zeile:
FileSystem.DeleteFile(file.FullName, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin, UICancelOption.DoNothing);
Natürlich, ich habe "Microsoft.VisualBasic.FileIO verwendet;" an der Spitze der Klasse und ich verifiziert, dass die aufgerufene Methode tatsächlich in der FileSystem-Klasse in diesem Namespace ist. In der obigen Zeile beziehe ich mich auf eine lokale Variable "Datei" - das ist eine FileInfo für eine lokale Datei (zB C: \ path \ to \ file.txt), von der ich sicher bin, dass sie existiert. Die Anwendung verfügt über vollständige Kontrolle über die Datei und das Verzeichnis, in dem es sich befindet.
Das scheint ordnungsgemäß zu funktionieren, da die Datei aus dem Verzeichnis, in dem es sich befand, verschwindet. Die Datei wird jedoch nicht in dem Papierkorb angezeigt. Ich habe versucht, die C: \ $ Recycle.Bin-Ordner manuell zu überprüfen, da ich vermutete, dass der in Sitzung 0 ausgeführte Windows-Dienst dazu führen würde, dass er in einem anderen Papierkorb landete, aber alle Papierkörbe leer sind.
Hat jemand eine Ahnung, was dieses Verhalten verursacht?
Übrigens ist die Maschine definitiv nicht frei von freiem Speicherplatz auf dem fraglichen Laufwerk (oder jedem anderen Laufwerk für die Angelegenheit), und die Datei ist sehr klein (ein paar Kilobyte, so dass es nicht überschreitet der Papierkorb-Schwellenwert).
posten Sie bitte Ihren Code. Ich habe das in der Vergangenheit ohne Probleme gemacht. – hunter
Editierte Post, um die relevante Codezeile und einige weitere Erklärungen zu enthalten. – Mels