.NET字符串文字文件路径错误

时间:2014-04-09 22:08:18

标签: c# asp.net .net

我有一个像这样定义的文件路径字符串:

string projectPath = @"G:\filepath\example\example\";

然而,当我调试时:

projectPath = G:\\filepath\\example\\example\\
我错过了什么吗?我认为@是字面字符串,所以我不必逃避反斜杠。如果我尝试逃避

string projectPath = "G:\\filepath\\example\\example\\";

我遇到同样的问题,有什么想法吗?

编辑:显然这不是问题,我的代码恰好在使用projectPath的地方破解:

string [] folders = Directory.GetDirectories(projectPath);

我想我的路径不正确?

编辑2:问题不在于字符串,在我尝试访问的文件夹上是拒绝访问。哎呀!

2 个答案:

答案 0 :(得分:3)

不,调试器显示额外的反斜杠,但它们实际上并不存在。所以你不必担心。

答案 1 :(得分:0)

根据您的编辑和评论,我认为您可能会在代码中使用try{}catch(){}语句中受益。如果这是一个无效的IO操作,这样的无效路径,您将能够从异常的消息中看到它并避免“崩溃”。

示例:

string projectPath = @"G:\filepath\example\example\";
string[] folders = null;

try
{
    folders = Directory.GetDirectories(projectPath);
}
catch(Exception e)
{
    Debug.WriteLine(e.Message);
}

您也可以尝试Directory.Exists()方法:

string projectPath = @"G:\filepath\example\example\";
string[] folders = null;

if (Directory.Exists(projectPath))
{
    folders = Directory.GetDirectories(projectPath);
}

虽然,我更喜欢try{}catch(){},以防万一存在权限问题。