我有一个路径,我需要确定它是目录还是文件.

这是确定路径是否为文件的最佳方法吗?

string file = @"C:\Test\foo.txt";

bool isFile = !System.IO.Directory.Exists(file) && 
                         System.IO.File.Exists(file);

对于目录,我会颠倒逻辑.

string directory = @"C:\Test";

bool isDirectory = System.IO.Directory.Exists(directory) && 
                            !System.IO.File.Exists(directory);

如果两者都不存在,那我就不go 做任何一个分支.所以假设它们都存在.

推荐答案

使用:

System.IO.File.GetAttributes(string path)

并判断返回的FileAttributes结果是否包含值FileAttributes.Directory:

bool isDir = (File.GetAttributes(path) & FileAttributes.Directory)
                 == FileAttributes.Directory;

.net相关问答推荐

Powershell机器令牌组

.Net MAUI Android 无法与 API localhost 对话

为什么 .NET 中的 System.Version 定义为 Major.Minor.Build.Revision?

.NET 中是否有一种简单的方法来获得数字的st、nd、rd和th结尾?

如何防止和/或处理 StackOverflowException?

使文本框不可编辑

如何等到远程 .NET 调试器附加

InternalsVisibleTo 属性不起作用

C# 属性实际上是方法吗?

如何授予所有用户对我的应用程序创建的文件的完全权限?

Visual Studio 2017 和 2019 突出显示滚动条中所选单词的出现

Find() 和 First() 抛出异常,如何改为返回 null?

.Net 中 AOP 的最佳实现是什么?

如何使用 Entity Framework Code First CTP 5 存储图像?

在关闭警告中访问 foreach 变量

什么是 .NET 应用程序域?

将 Dictionary 转换为匿名对象?

为什么甚至可以更改私有成员,或使用反射在 C# 中运行私有方法?

是 C# 中的 bool 读/写原子

/langversion 的错误选项6无效;必须是 ISO-1、ISO-2、3、4、5 或默认值