9

我使用输入字符串添加了一个替代代码路径,而不是从文件中读取。我需要一个空的 FileInfo 对象,因为我有许多访问Name,LengthExtension属性的实例。

理想情况下,我正在寻找类似的东西

FileInfo _fileinfo = new FileInfo(File.Empty);

然而,只有一个FileInfo构造函数,它似乎需要一个有效的文件。创建一个空初始化的 FileInfo 对象的任何解决方案,它不需要创建一个空的虚拟文件?

4

2 回答 2

5

我刚刚遇到了类似的问题。你觉得从以下几点开始:

FileInfo _fileinfo = null;

之后,你可以这样做:

_fileinfo = new FileInfo(<string of file with path>);

然后,您将拥有一个可以作为参数传递给您的方法的对象。在尝试获取 .Name 等的值之前,不要忘记检查您的对象是否为空

if(null != _fileinfo)
{
  //some code
}
于 2012-12-20T09:43:45.743 回答
0

正如评论中所指出的,FileInfo 将愉快地使用不存在的路径进行构造,但它们必须是有效的路径字符串(您称之为“有效文件”)。(有关什么是有效路径,请参阅https://docs.microsoft.com/en-us/dotnet/api/system.io.fileinfo?view=net-5.0 。)

解决方案是简单地写

FileInfo _fileinfo = new FileInfo(@"C:\NonExistant.txt");

代替

FileInfo _fileinfo = new FileInfo(File.Empty);

然后,您可以考虑自己的测试,看看您是否正在处理“空”FileInfo 对象,例如检查驱动器号、扩展名、File.Exists测试等。

于 2020-12-09T14:09:16.950 回答