C#目录。删除抛出非法字符错误

C#目录。删除抛出非法字符错误,c#,C#,因此,我们有一个应用程序,其中用户不断丢失工具栏,解决此问题的唯一方法是为该用户删除appdata中的文件夹。因此,我们编写了一个简单的小程序来删除这个文件夹,这里是我们在try catch System.ArgumentException: Illegal characters in path. at System.IO.Path.CheckInvalidPathChars(String path) at System.IO.Path.InternalCombine(String

因此,我们有一个应用程序,其中用户不断丢失工具栏,解决此问题的唯一方法是为该用户删除appdata中的文件夹。因此,我们编写了一个简单的小程序来删除这个文件夹,这里是我们在
try catch

System.ArgumentException: Illegal characters in path.
   at System.IO.Path.CheckInvalidPathChars(String path)
   at System.IO.Path.InternalCombine(String path1, String path2)
   at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive)
   at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive)
   at System.IO.Directory.Delete(String path, Boolean recursive)
   at DeleteFolder.frnDeleteFolder.btnDelete_Click(Object sender, EventArgs e) in C:\Users\rmcintosh.K12.000\documents\visual studio 2010\Projects\DeleteFolder\DeleteFolder\frnDeleteFolder.cs:line 82
这是我们用来删除的代码

   string path = @"C:\Users\98532153\AppData\Roaming\DraftSight";
    try
    {
        if (Directory.Exists(path)) {
            Directory.Delete(path, true);
        }
        else
        {
            MessageBox.Show("Directory Does Not Exists");
        }

    }
    catch (Exception ex)
    {
        richTextBox1.Text = ex.ToString();
    }
我想指出的是,只要主目录是空的,这种方法就可以找到,但只要我添加任何文件子目录,它就会抛出这个错误。

C#字符串中的反斜杠是一个转义字符;您需要
stringpath=@“C:\where\where”
--注意“@”--或者您需要
字符串path=“C:\\where\\where”--请注意双反斜杠

您可以阅读更多有关的信息。

C#字符串中的反斜杠是转义字符;您需要
stringpath=@“C:\where\where”
--注意“@”--或者您需要
字符串path=“C:\\where\\where”--请注意双反斜杠

您可以阅读更多有关的信息。

C#字符串中的反斜杠是转义字符;您需要
stringpath=@“C:\where\where”
--注意“@”--或者您需要
字符串path=“C:\\where\\where”--请注意双反斜杠

您可以阅读更多有关的信息。

C#字符串中的反斜杠是转义字符;您需要
stringpath=@“C:\where\where”
--注意“@”--或者您需要
字符串path=“C:\\where\\where”--请注意双反斜杠


您可以阅读更多信息。

看起来内部的某些子目录的名称中可能包含一些无效字符。不知怎的.NET没有处理它。唯一的方法是编写自己的例程,递归地检查路径并删除它们

看起来内部的某些子目录的名称中可能包含一些无效字符。不知怎的.NET没有处理它。唯一的方法是编写自己的例程,递归地检查路径并删除它们

看起来内部的某些子目录的名称中可能包含一些无效字符。不知怎的.NET没有处理它。唯一的方法是编写自己的例程,递归地检查路径并删除它们

看起来内部的某些子目录的名称中可能包含一些无效字符。不知怎的.NET没有处理它。唯一的方法是编写自己的例程,递归地检查路径并删除它们

如果查看VS中的Intellisense,它会告诉您目录必须为空

调用Directory.GetFiles并清除它们,然后删除该目录


如果您需要,我可以用递归方法帮助您完成此操作。

如果您查看VS中的Intellisense,它会告诉您目录必须为空

调用Directory.GetFiles并清除它们,然后删除该目录


如果您需要,我可以用递归方法帮助您完成此操作。

如果您查看VS中的Intellisense,它会告诉您目录必须为空

调用Directory.GetFiles并清除它们,然后删除该目录


如果您需要,我可以用递归方法帮助您完成此操作。

如果您查看VS中的Intellisense,它会告诉您目录必须为空

调用Directory.GetFiles并清除它们,然后删除该目录



如果您需要,我可以帮助您使用递归方法来完成此操作。

检查以确保路径中没有多余的引号,并且路径不以斜杠结尾。删除路径末尾的斜杠。尝试此
字符串路径=@“C:\Users\98532153\AppData\Roaming\DraftSight”这是实际代码吗?”导致此
string path=“C:\Users\98532153\AppData\Roaming\DraftSight”
甚至不应该编译。更有趣的问题是为什么
目录.Exists
调用成功。如果路径包含无效字符,则似乎应返回
false
。请检查以确保路径中没有多余的引号,并且路径没有以斜杠结尾。删除了路径末尾的斜杠。请尝试此
string path=@“C:\Users\98532153\AppData\Roaming\DraftSight”这是实际代码吗?”导致此
string path=“C:\Users\98532153\AppData\Roaming\DraftSight”
甚至不应该编译。更有趣的问题是为什么
目录.Exists
调用成功。如果路径包含无效字符,则似乎应返回
false
。请检查以确保路径中没有多余的引号,并且路径没有以斜杠结尾。删除了路径末尾的斜杠。请尝试此
string path=@“C:\Users\98532153\AppData\Roaming\DraftSight”这是实际代码吗?”导致此
string path=“C:\Users\98532153\AppData\Roaming\DraftSight”
甚至不应该编译。更有趣的问题是为什么
目录.Exists
调用成功。如果路径包含无效字符,则似乎应返回
false
。请检查以确保路径中没有多余的引号,并且路径没有以斜杠结尾。删除了路径末尾的斜杠。请尝试此
string path=@“C:\Users\98532153\AppData\Roaming\DraftSight”这是实际代码吗?”导致此
string path=“C:\Users\98532153\AppData\Roaming\DraftSight”
甚至不应该编译。更有趣的问题是为什么
目录.Exists
调用成功。如果路径包含无效字符,则返回
false
Directory.Delete(path,true)
递归删除所有文件和目录
Directory.Delete(path,true)
递归删除所有文件和目录
Directory.Delete(path,true)
递归删除所有文件和目录
Directory.Delete(path,true)
递归删除所有文件和目录。