我当时正在考虑制作System.IO.Path
,System.IO.File
和System.IO.Directory
的更“高级”版本。
很显然,我从System.IO.Path
开始,因为文件和目录的基础是路径,所以我开始编写一个名为ContainsInvalidChars
的函数(检查该路径是否包含无效字符),为此必须使用GetDirectoryName
和GetFileName
,但是在编写了这两种方法之后,我停下来想了想:
这两种方法如何区分输入路径是目录,文件还是dir +文件”。我进行了几次测试,发现它们没有。例如,如果您有类似{{1} },然后将其放入C:\\Users\\UserName\\AppData
中,即使GetFileName
是文件夹,并且从技术上讲应该是目录的一部分,并且文件名应为null,与{{ 1}},即使AppData
也是目录名的一部分,它也只返回AppData
。因此,我得出的结论是,我首先必须编写适当的GetDirectoryName
和{{1 }}方法,然后只写AppData
。问题仍然存在,如何区分这三种类型的路径。考虑到这一点,我开始在计算机上寻找一对文件(这很容易C:\\Users\\UserName
列,其中显示文件/文件夹的类型,如果是文件夹,则显示{/ {1}},如果文件(甚至没有扩展名)GetFileName
,那么我在这里,有什么办法在C#中获取文件/文件夹类型?
我知道一天结束时您总是可以写GetDirectoryName
,是的,这将是DIR =“ C:\ Users \ UserName \ AppData”&FILE =“”,但我知道有些人不会这样做不要在末尾写ContainsInvalidChars
,而只需写Type
。
答案 0 :(得分:3)
System.IO
提供的功能:
File.Exists(string Path)
和Directory.Exists(string Path)
。根据Path的值返回布尔值
if (Directory.Exists(@"C:\Users\UserName\AppData\"))
Console.WriteLine("Folder exists");
else
Console.WriteLine("Path might be of file");
Ouput:
Folder exists
答案 1 :(得分:0)
如果您使用的是.net 4.0及更高版本,则可以使用以下代码来实现此目的。
File.GetAttributes("your path to directory or file").HasFlag(FileAttributes.Directory)
但是请确保路径有效。
或
您也可以使用
File.Exists();
Directory.Exists();