无法删除桌面文件夹

时间:2014-11-12 13:31:36

标签: c#

问题:我无法删除a中的文件夹(包括内容) 桌面文件夹以编程方式使用C#。如果我复制的值 desktopDestinationPath并将其粘贴到Windows资源管理器中,我可以打开 这个文件夹(结论,路径有效)测试 - Directory.Exists(desktopDestinationPath) - 返回true,然后丢弃 进入代码块(结论,路径有效) Directory.Delete(desktopDestinationPath,true) - 抛出异常 (结论,路径不再有效)如果我从中复制路径值 异常并将其粘贴到Windows资源管理器中,我可以打开此文件夹 (结论,路径有效)

我尝试过:构建,重建,清洁解决方案,重新启动视觉效果 工作室。另外,如果我手动删除文件夹并运行代码,则 文件夹已成功构建。但是,当我第二次跑,我得到 例外。结果:困惑的样子和这篇文章。对不起,如果我放 细节太多了。我愿意帮助解决和批评 我怎么贴(都会帮我学习)先谢谢!视觉 Studio Info位于此条目的底部。我正在使用:微软 Visual Studio Premium 2013(C#)。

我的代码:

    // preceded by other code in the method
    if (Directory.Exists(desktopDestinationPath)) // desktopDestinationPath is "C:\\Users\<me>\\Desktop\\<folder 1>\\<folder 2>"
    {
        Directory.Delete(desktopDestinationPath, true); // exception is thrown here <***> "C:\\Users\\<me>\\Desktop\\<folder 1>\\<folder 2>"            
        // create folder
        Directory.CreateDirectory(desktopDestinationPath);
        // Call a method to perform Xcopy
        ProcessXcopy(SourceLoc, desktopDestinationPath);
    }
    // followed by an else which creates folder if it does not exist

我的代码抛出以下异常://注意我使用的是Pri.Longpath

System.IO.DirectoryNotFoundException未被用户代码处理HResult = -2147024893消息=找不到路径的一部分&#39; C:\ Users \ ljones \ Desktop \ folder 1 \ folder2 \ fldr3 \ fldr4 \ fldr5 \ fldr6 \ fldr7 \ fldr8 \ fldr9&#39 ;. Source = mscorlib StackTrace:在System.IO.Directory.DeleteHelper(String fullPath,String userPath,Boolean recursive,Boolean throwOnTopLevelDirectoryNotFound)处于System.IO.Directory.Delete(String fullPath,String userPath,Boolean recursive,Boolean checkHost)。位于c:\ Users \ some文件夹\ Source \ Workspaces \ some文件夹\ some文件夹\ some文件夹\ some文件中的UnitTests.GatMinerTest.CreateDesktopDestinationFolder(String desktopPath)中的IO.Directory.Delete(String path,Boolean recursive):第93行at C:\ Users \ some folder \ Source \ Workspaces \ some folder \ some folder \ some folder \ some file:Unit 65 InnerException:

中的UnitTests.GatMinerTest.IcwIntegrationMethod()

我从网上学到了:DirectoryNotFoundException异常 在找不到文件路径或目录的一部分时抛出。校验 该目录出现在指定的位置。检查一下 目录存在于指定的位置。 //我很公平(99.9%) 某些目录存在使用相对路径时,请确保 当前目录是正确的。如果你是的话,路径可能不正确 假设当前目录不正确。 //我很公平(99.9%) 某些目录存在

1 个答案:

答案 0 :(得分:1)

感谢大家帮忙寻找答案。具体来说,感谢以更合适的方式发布问题的提示。

解决方案是我的错误(去图)。

在我没有透露的代码中,有一个xcopy的调用。我相信在测试过程中,我已经超过了这一点,xcopy正在后台工作(仍然有我的文件夹结构的钩子)。因此,我无法删除它。

如果我浪费你的时间,我道歉。你的轻推帮助我以我的方式找到错误。

再次感谢!