如何在c#的拖放事件中区分文件或文件夹
本文关键字:中区 文件 文件夹 事件 拖放 | 更新日期: 2023-09-27 17:55:03
我有一个你拖放文件的表单,我想知道我如何使应用程序知道数据是文件还是文件夹。
我的第一次尝试是在数据中寻找一个"。",但后来一些文件夹确实有一个。在他们。我也试过做一个文件。Exists和a Directory。存在条件,但它只搜索当前应用程序路径,而不搜索其他任何地方。
是否有任何方式,我可以以某种方式应用。exists在一个特定的目录或有一种方法,我可以检查什么类型的数据被拖到表单?
给定路径为字符串,您可以使用System.IO.File。GetAttributes(string path)获取FileAttributes
enum,然后检查是否设置了FileAttributes.Directory
标志
要检查。net 4.0之前版本的文件夹,您应该执行:
FileAttributes attr = File.GetAttributes(path);
bool isFolder = (attr & FileAttributes.Directory) == FileAttributes.Directory;
在较新的版本中,您可以使用HasFlag
方法来获得相同的结果:
bool isFolder = File.GetAttributes(path).HasFlag(FileAttributes.Directory);
还要注意FileAttributes
可以提供关于文件/文件夹的各种其他标志,例如:
-
FileAttributes.Directory
: path表示文件夹 -
FileAttributes.Hidden
: file is hidden -
FileAttributes.Compressed
:文件被压缩 -
FileAttributes.ReadOnly
:文件是只读的 -
FileAttributes.NotContentIndexed
:从索引 中排除
等。
if(Directory.Exists(path))
// then it is a directory
else
// then it is a file