是否有一个用于保存文件系统路径的类?

时间:2010-01-08 08:27:57

标签: .net

在.NET基类库中有一个类System.IO.Path,用于对表示文件系统路径的字符串执行常见操作。但是,我需要的是一个封装路径的类,所以我得到了类型安全性和可能更短的路径操作符号。我正在考虑.NET等价的C++ Boost's路径类。这样的课程存在吗?

更新:我不一定要找一个能够容纳文件和目录路径的类。但是,由于文件系统路径可以用于指向两者,我发现很明显可以使用相同的类。

结论 DirectoryInfo FileInfo 接近我正在寻找的东西。但是,它们似乎是作为文件或目录的表示,而不是文件或目录路径。这使得难以进行路径操作,例如combining a directory path and a relative file path,所以我想我会编写一个封装路径的类。

4 个答案:

答案 0 :(得分:9)

您正在寻找System.IO.DirectoryInfo课程。

DirectoryInfo类派生自抽象[FileSystemInfo]类,您还拥有描述文件的FileInfo类。

答案 1 :(得分:2)

根据您的具体问题,您可以使用Uri类,因为它也可以代表本地地址。

但是,作为Rune said(+1)你可能应该使用DirectoryInfo

答案 2 :(得分:1)

.NET Framework中没有这样的类。我建议你编写自己的,可能基于StringBuilder和Path类。

答案 3 :(得分:0)

我认为.NET中的思维方式不是将文件路径绑定到协议。

例如,静态使用File类。 文件路径的标识作为字符串传递,然后当您需要查找时,执行静态方法File.exists(pathstring)。

我更喜欢.NET中的思维模式而不是具有可实例化文件类的Java。因为一旦你有一个可实例化的File类,每个人都希望传递一个File对象。

通常情况下,文件标识最好作为字符串传递,因为它经历了多个字符串突变以及检查和比较,其中大多数比较/变异是最好的,并且在正则表达式中有效地完成。具有作为File对象传递的文件标识会占用cpu,因为您必须提取字符串,如果已修改,则必须重新实例化新的File对象。

通常,在Java中,我发现我必须不断地将File对象转换为字符串来回传递,因为其他程序员或库提供者对File类有一种强迫性/强迫性的爱情。