繁体   English   中英

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

[英]What type should I use to indicate an argument is a filename in C#?

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

void myFunc(string filename)

但我宁愿通过要求更专业的类型而不是检测""在方法中没有有效的文件名而具有更多的类型安全性。

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

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

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

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

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

public FileInfo(string fileName)

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM