Mein Problem ist, dass ich einen Ordner löschen möchte, der von mir im OneDrive -Verzeichnis auf dem Benutzersystem erstellt wurde, dem Verzeichnis, das Sie beim Eingeben von "%OneDrive%" im Datei -Explorer erreichen, aber ich erhalte einen Fehler: < /p>
System.IO.IOException: Access to the path '\\?\C:\Users\user\OneDrive\Dokumente\Test\dc978eb5340c40d2887ad68fcd70a765' is denied.
at System.IO.FileSystem.RemoveDirectoryInternal(String fullPath, Boolean topLevel, Boolean allowDirectoryNotEmpty)
at System.IO.FileSystem.RemoveDirectoryRecursive(String fullPath, WIN32_FIND_DATA& findData, Boolean topLevel)
at System.IO.FileSystem.RemoveDirectory(String fullPath, Boolean recursive)
at System.IO.DirectoryInfo.Delete(Boolean recursive)
at ExampleOnedriveError.Form1.deleteButton_Click(Object sender, EventArgs e) in C:\projects\cmi\ExampleOnedriveError\ExampleOnedriveError\Form1.cs:line 47
< /code>
Ich habe die folgenden Dinge ausprobiert: < /p>
[*] Bearbeiten Sie die Verzeichnisberechtigungen manuell, sodass der Ordner von allen < /li>
Führen Sie die Anwendung als Administrator aus < /li>
Verschieben /> Löschen Sie die Datei und den Ordner ohne das rekursive Flag (so nacheinander)
[*] Löschen Sie alle 200 ms für 2 Sekunden
Alle diese Versuche haben das gleiche Ergebnis:
Die Datei wird gelöscht. Der Ordner bleibt um < /p>
Ich kann den Ordner manuell in der Datei löschen Der Explorer. Erstellen Sie ein Beispielprojekt, bei dem ich das Verhalten neu erstellen kann: < /p>
public partial class Form1 : Form
{
private static DirectoryInfo info;
private static string FILE_NAME = "bbb.txt";
public Form1()
{
InitializeComponent();
}
private void createFolder_Click(object sender, EventArgs e)
{
var currentDirectory = AppDomain.CurrentDomain.BaseDirectory;
var sourceFile = Path.Combine(currentDirectory, FILE_NAME);
if (!File.Exists(sourceFile))
{
Console.WriteLine("Error: Source file not found.");
return;
}
var oneDrivePath = Environment.GetEnvironmentVariable("OneDrive");
if (string.IsNullOrEmpty(oneDrivePath))
{
Console.WriteLine("Error: OneDrive environment variable is not set.");
return;
}
var newDirectory = Path.Combine(oneDrivePath, "Dokumente", "Test", Guid.NewGuid().ToString("N"));
info = Directory.CreateDirectory(newDirectory);
var destinationFile = Path.Combine(newDirectory, FILE_NAME);
File.Copy(sourceFile, destinationFile);
Console.WriteLine($"File copied successfully to: {destinationFile}");
}
private void deleteButton_Click(object sender, EventArgs e)
{
try
{
info.Delete(true);
}
catch (Exception exception)
{
Console.WriteLine(exception);
}
}
}
< /code>
Es handelt sich um eine grundlegende WinForms -Anwendung mit einer Schaltfläche Erstellen und Löschen. Die Datei handelt>
Warum kann ich keinen oneedrive -synchronisierten Ordner mit C# löschen? ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Aktionsereignisse aus der Datenbank nicht löschen "löschen" kann nicht löschen
by Anonymous » » in Java - 0 Replies
- 85 Views
-
Last post by Anonymous
-
-
-
Wie lade ich einen gesamten Ordner in den lokalen Ordner DataPower hoch?
by Anonymous » » in JavaScript - 0 Replies
- 48 Views
-
Last post by Anonymous
-
Mobile version