c# - 目录的全名、全路径

标签 c# .net directory

为什么 DirectoryInfo 不提供统一的方法来获取文件夹的限定名称。

在此示例中:

class Program
{
    static void Main(string[] args)
    {
        System.IO.DirectoryInfo DirInfo = new System.IO.DirectoryInfo(@"C:\TEMP\");
        Console.WriteLine(DirInfo.FullName);
        System.IO.DirectoryInfo DirInfo2 = new System.IO.DirectoryInfo(@"C:\TEMP");
        Console.WriteLine(DirInfo2.FullName);
        Console.ReadLine();
    }
}

无论目录是否实际存在,FullName 只是反射(reflect)用户在对象中的输入,但您无法确定最终是否获得了带有“\”的路径。

在 MSDN 文档中提到了从 FileSystemInfo 的继承,其中可以通过属性 FullPath 检索 FQN,但我似乎无法从 DirectoryInfo 的实例访问它。

是否有一个技巧或其他方法/字段来确保路径始终具有相同的格式?

最佳答案

如果尾部反斜杠不存在,则无法获取它。它是完全可选的,但无论它是否存在,也不会对您的程序产生影响。但如果你想确保这一点:

char[] blackslashes = {Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar};
string dirPath = @"C:\TEMP";
if (!blackslashes.Contains(dirPath.Last()))
    dirPath += "\\";
System.IO.DirectoryInfo dirInfo = new System.IO.DirectoryInfo(dirPath);

关于c# - 目录的全名、全路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52423130/

相关文章:

c# - C# 中的 OpenGL 包装器

c# - 两次跟进的差值(转为小数)

c# - 如何在 Xamarin 中查找当前的 UIViewController

c# - 如何将datagridview中的单元格值保存到列表<list<>>

windows - 在大型目录结构上运行时出现元数据导出错误

git - 如何使用 Git 跟踪目录而不是它们的文件?

c# - 获取无线网络强度

c# - 我希望 C# 窗体崩溃而不向我显示红十字会

c# - app.config 的困境 - 为什么我不能嵌入应用程序配置?

c++ - 除了 boost 之外,在 C++ 中获取目录中所有文件的跨平台方式