C#的Directory.Move System.NotSupportedException

问题描述:

有没有办法绕过问题标题中指定的异常?我完全不知道该怎么做,我需要更改目录名称,以便更快地编写目录,但是这种异常会导致严重的头痛......代码并不复杂,一切工作正常,除了该代码一行:C#的Directory.Move System.NotSupportedException

Directory.Move(folderName, path + "\\" + novoIme); 

预先感谢任何形式的帮助:)

+1

至少向我们展示了你从哪个方向移动并取悦它? – 2012-02-14 21:55:07

+0

你对'folderName','path'和'novoIme'使用什么值? – scottm 2012-02-14 21:55:30

+1

这个例外是否包含更多信息?就像在'Message'属性或者'InnerException'中一样?您是否尝试过调试并查看'folderName'和'path +“\\”+ novoIme'以确保路径正确? – 2012-02-14 21:56:55

也许源和目标路径在不同的卷上? Directory.Move方法does not support cross-volume moves

你将不得不执行自己的例程来做到这一点,或使用别人的。 FolderMove on CodePlex出现在我的搜索结果中。

您可以添加Microsoft.VisualBasic引用到项目,并使用此代码来命名的目录:

Microsoft.VisualBasic.Devices.Computer c = new Microsoft.VisualBasic.Devices.Computer(); 
c.FileSystem.RenameDirectory(/*last name*/,/*new name*/); 
+0

这是如何解决问题的? – dtb 2012-02-14 22:02:59

+1

@dtb:这是重命名目录的一种方式 – 2012-02-14 22:03:44

+0

我会尝试一下,希望它能起作用。是的,它并没有解决异常的奥秘,但至少它会(或应该)帮助我:)感谢回复,这将发布到所有在这么短的时间发布:) – IanZG 2012-02-14 22:09:30

如果你是c确定源文件夹存在,请尝试以提升的权限运行您的应用程序并查看会发生什么。此外,尝试在单独的变量中形成目标路径,将其添加到Watches窗口并查看是否创建了正确的名称。