给定一个目录字符串,如何确保关闭\
字符?例如,C:\foo
是一个目录,C:\foo\
也是。{1}}。是否有System.IO.Path
方法确保结尾为\
?
答案 0 :(得分:5)
if (!filename.EndsWith(Path.DirectorySeparatorChar))
filename += Path.DirectorySeparatorChar;
答案 1 :(得分:3)
大概你想附加一个分隔符,以便随后可以使用字符串连接附加文件名。
在这种情况下,Kyle Rozendo最初的建议是合理的:考虑一下你是否真的需要这样做。如果您始终使用Path.Combine附加文件名,则无需关心路径是否具有尾随分隔符。
如果你仍想这样做,你需要考虑边缘情况。路径“D:”是引用D:驱动器上当前工作目录的有效相对路径。附加分隔符将更改此含义以引用D:驱动器上的根目录。你真的想要这个吗?我猜不是。因此,我会特别注意这一点:
public static string AppendSeparator(string path)
{
if (path == null) throw new ArgumentNullException("path");
if (path.Length == 0) return path;
if (path[path.Length - 1] == Path.VolumeSeparatorChar) return path;
if (path[path.Length - 1] == Path.DirectorySeparatorChar) return path;
if (path[path.Length - 1] == Path.AltDirectorySeparatorChar) return path;
return path + Path.DirectorySeparatorChar;
}
然后您可以按如下方式使用它 - 最后一个示例在添加分隔符之前将输入路径转换为绝对路径:
path = AppendSeparator(@"C:\SomePath\");
path = AppendSeparator(@"C:\SomePath");
path = AppendSeparator(@"D:");
path = AppendSeparator(Path.GetFullPath("D:"));
答案 2 :(得分:0)
干草, 怎么样使用这个条件
if (s.IndexOf('\\') == s.Length - 1)
其中s是你的路径字符串“amr \”将给出真正的“amr”将给出错误的
答案 3 :(得分:0)