.Net中的文件系统类型

时间:2010-03-19 14:24:29

标签: .net filesystems directory path

我没有得到抽象和术语: - (

例如,DirectoryInfo.FullName被定义为目录或文件的完整路径,但它是一个字符串! DirectoryInfo.Name,FileInfo.FullName,Path.GetDirectoyName等也是如此。

这意味着在.Net中没有文件系统对象的“深度”(或“肉” - 我的英语不太好)。类型系统没有任何保护。例如,我不能定义两个Path对象,并询问其中一个是否在另一个“上方” - 我必须操纵字符串。我无法区分标识目录的路径和标识文件的路径。我什么都做不了! - (只是操纵琴弦。

这是正确的(或者我只是遗漏了一些东西)。如果正确,还有其他选择吗?

4 个答案:

答案 0 :(得分:3)

看看System.IO.Path。要确定您是否有文件,可以执行Path.GetFileName("C:\\test\\") == String.Empty。或者,如果您确定该文件有扩展名,则可以使用Path.HasExtension

答案 1 :(得分:1)

您应该查看Path班级和Uri班级。

MSDN链接:

Path Class

Uri Class

例如,对于Path类,您只有方法来获取目录,只有文件域,甚至只有文件名而没有给定路径的扩展名。

使用Uri类,您有一个属性可以告诉您它是绝对的UriIsAbsoluteUri)还是一个制作亲属的方法Uri({{1 }})。查看Uri FAQ以获取更多信息。


从顶部到底部遍历路径的示例:

MakeRelativeUri

答案 2 :(得分:1)

我认为FS实体的类型安全对象本身是FileInfoDirectoryInfo

答案 3 :(得分:0)

什么是文件路径而不是字符串?您可以使用Path类来操作字符串。 DirectoryInfo类还有一个Parent来获取它的父目录,而FileInfo有一个Directory属性来获取它的当前目录。你还需要什么?