我应该使用什么类型来表示参数是C#中的文件名?

时间:2015-04-20 16:36:49

标签: c# arguments

我的函数需要一个文件名,以便它可以读取和/或写入该文件。 我可以为此目的使用一个简单的字符串

void myFunc(string filename)

但我宁愿通过要求更专业的类型来确保更多类型安全,并且不会检测到""在方法中没有有效的文件名。

班级File不起作用,因为它是静态的。

可以使用类FileInfo,但我不记得我遇到过这种类型的文件名参数。

在个人项目中,我编写了自己的类,只是检查文件名是否格式正确等等。创建文件名时抛出异常而不是方法本身。

由于新项目的范围更广,我认为最好使用通用标准,以免混淆其他用户(或者在未来几周内我的未来)。

2 个答案:

答案 0 :(得分:2)

您对FileInfo的看法是正确的 - 它唯一的构造函数有一个fileName参数,它会为您执行基本验证。来自MSDN

public FileInfo(string fileName)

答案 1 :(得分:1)

如果由于某种原因发现FileInfo不足,您可能会以更接近System.Uri的方式处理文件名。 Uri不一定总是与文件相关,但文件路径可以是Uri的示例,Microsoft的实现通过IsFile属性支持这一点。可以想象一个强制继承Uri和IsFile的FileUri类。

值得一提的是,在我查看的大多数MSDN代码段中,文件路径和名称只是作为字符串传递。这可能只是为了方便起见。