我有一个像这样定义的文件路径字符串:
string projectPath = @"G:\filepath\example\example\";
然而,当我调试时:
projectPath = G:\\filepath\\example\\example\\
我错过了什么吗?我认为@是字面字符串,所以我不必逃避反斜杠。如果我尝试逃避
string projectPath = "G:\\filepath\\example\\example\\";
我遇到同样的问题,有什么想法吗?
编辑:显然这不是问题,我的代码恰好在使用projectPath的地方破解:
string [] folders = Directory.GetDirectories(projectPath);
我想我的路径不正确?
编辑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(){}
,以防万一存在权限问题。