我的函数需要一个文件名,以便它可以读取和/或写入该文件。 我可以为此目的使用一个简单的字符串
void myFunc(string filename)
但我宁愿通过要求更专业的类型来确保更多类型安全,并且不会检测到""
在方法中没有有效的文件名。
班级File
不起作用,因为它是静态的。
可以使用类FileInfo
,但我不记得我遇到过这种类型的文件名参数。
在个人项目中,我编写了自己的类,只是检查文件名是否格式正确等等。创建文件名时抛出异常而不是方法本身。
由于新项目的范围更广,我认为最好使用通用标准,以免混淆其他用户(或者在未来几周内我的未来)。
答案 0 :(得分:2)
您对FileInfo
的看法是正确的 - 它唯一的构造函数有一个fileName参数,它会为您执行基本验证。来自MSDN:
public FileInfo(string fileName)
答案 1 :(得分:1)
如果由于某种原因发现FileInfo不足,您可能会以更接近System.Uri的方式处理文件名。 Uri不一定总是与文件相关,但文件路径可以是Uri的示例,Microsoft的实现通过IsFile属性支持这一点。可以想象一个强制继承Uri和IsFile的FileUri类。
值得一提的是,在我查看的大多数MSDN代码段中,文件路径和名称只是作为字符串传递。这可能只是为了方便起见。