首页 > C# > c#检查路径是文件还是目录的更好方法?

c#检查路径是文件还是目录的更好方法?

上一篇 下一篇

我正在处理目录和文件。用户可以选择文件或目录,然后对其执行某些操作。这要求我有一个根据用户的选择执行不同操作的方法。TreeView

目前,我正在做这样的事情来确定路径是文件还是目录:

bool bIsFile = false;
bool bIsDirectory = false;

try
{
    string[] subfolders = Directory.GetDirectories(strFilePath);

    bIsDirectory = true;
    bIsFile = false;
}
catch(System.IO.IOException)
{
    bIsFolder = false;
    bIsFile = true;
}

我不禁觉得有更好的方法可以做到这一点!我希望找到一种标准的 .NET 方法来解决这个问题,但我无法做到这一点。是否存在这样的方法,如果不存在,确定路径是文件还是目录的最直接方法是什么?

分割线

网友回答:

从如何判断路径是文件还是目录:

// get the file attributes for file or directory
FileAttributes attr = File.GetAttributes(@"c:Temp");

//detect whether its a directory or file
if ((attr & FileAttributes.Directory) == FileAttributes.Directory)
    MessageBox.Show("Its a directory");
else
    MessageBox.Show("Its a file");

.NET 4.0+ 更新

根据下面的注释,如果您使用的是 .NET 4.0 或更高版本(并且最大性能并不重要),则可以以更简洁的方式编写代码:

// get the file attributes for file or directory
FileAttributes attr = File.GetAttributes(@"c:Temp");

if (attr.HasFlag(FileAttributes.Directory))
    MessageBox.Show("Its a directory");
else
    MessageBox.Show("Its a file");

分割线

网友回答:

用这个怎么样?

if(File.Exists(data.path))
{
    // is file
}
else if(Directory.Exists(data.path))
{
   // is Folder 
}
else
{
   // invalid path
}

File.Exists() 如果它不是文件,即使目录确实存在,也会返回 false,所以如果它返回 true,我们知道我们得到了一个文件,如果它返回 false,我们要么有一个目录,要么是一个无效的路径,所以接下来我们测试它是否是一个有效的目录与 Directory.Exists() 如果返回 true,我们有一个目录,如果不是,它是一个无效的路径。

分割线

网友回答:

仅使用此行,您可以获得路径是目录还是文件:

File.GetAttributes(data.Path).HasFlag(FileAttributes.Directory)

模板简介:该模板名称为【c#检查路径是文件还是目录的更好方法?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 304次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 04-09
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
自适应 微信文章 企业网站 微信图片 单页式简历模板 html5 响应式 微信模板 微信公众平台 微信素材
您可能会喜欢的其他模板