One Drive 文件夹的 .NET Directory.Move() 失败
.NET Directory.Move() fails for One Drive folders
来电:
// Directory.Exists(path) returns true
// path = "C:\Users\david\OneDrive - Windward Studios\Documents\AutoTag\templates"
Directory.CreateDirectory(backupFolder);
Directory.Move(path, Path.Combine(backupFolder, Path.GetFileName(path)));
抛出异常:
System.IO.IOException
HResult=0x80070005
Message=Access to the path 'C:\Users\david\OneDrive - Windward Studios\Documents\AutoTag\templates' is denied.
Source=mscorlib
StackTrace:
at System.IO.Directory.InternalMove(String sourceDirName, String destDirName, Boolean checkHost)
at System.IO.Directory.Move(String sourceDirName, String destDirName)
at AutoTagCore.net.windward.autotag.controls.options.CopyTemplates.UpdateFiles() in C:\git\Jenova\autotag\AutoTagCore\net\windward\autotag\controls\options\CopyTemplates.cs:line 480
This exception was originally thrown at this call stack:
System.IO.Directory.InternalMove(string, string, bool)
System.IO.Directory.Move(string, string)
AutoTagCore.net.windward.autotag.controls.options.CopyTemplates.UpdateFiles() in CopyTemplates.cs
为什么这不起作用?我能做些什么来解决它?
目的地需要在路径末尾有一个 \。
string destDirectory = Path.Combine(backupFolder, Path.GetFileName(path));
if ((!destDirectory.EndsWith("\")) && !destDirectory.EndsWith("/"))
destDirectory += "\";
来电:
// Directory.Exists(path) returns true
// path = "C:\Users\david\OneDrive - Windward Studios\Documents\AutoTag\templates"
Directory.CreateDirectory(backupFolder);
Directory.Move(path, Path.Combine(backupFolder, Path.GetFileName(path)));
抛出异常:
System.IO.IOException
HResult=0x80070005
Message=Access to the path 'C:\Users\david\OneDrive - Windward Studios\Documents\AutoTag\templates' is denied.
Source=mscorlib
StackTrace:
at System.IO.Directory.InternalMove(String sourceDirName, String destDirName, Boolean checkHost)
at System.IO.Directory.Move(String sourceDirName, String destDirName)
at AutoTagCore.net.windward.autotag.controls.options.CopyTemplates.UpdateFiles() in C:\git\Jenova\autotag\AutoTagCore\net\windward\autotag\controls\options\CopyTemplates.cs:line 480
This exception was originally thrown at this call stack:
System.IO.Directory.InternalMove(string, string, bool)
System.IO.Directory.Move(string, string)
AutoTagCore.net.windward.autotag.controls.options.CopyTemplates.UpdateFiles() in CopyTemplates.cs
为什么这不起作用?我能做些什么来解决它?
目的地需要在路径末尾有一个 \。
string destDirectory = Path.Combine(backupFolder, Path.GetFileName(path));
if ((!destDirectory.EndsWith("\")) && !destDirectory.EndsWith("/"))
destDirectory += "\";