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



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

void myFunc(string filename)

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

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

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

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

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

FileInfo的想法是正确的 - 它唯一的构造函数有一个 fileName 参数,它为你执行基本的验证。从 MSDN:

public FileInfo(string fileName)

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

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

最新更新