我使用输入字符串添加了一个替代代码路径,而不是从文件中读取。我需要一个空的 FileInfo 对象,因为我有许多访问Name
,Length
和Extension
属性的实例。
理想情况下,我正在寻找类似的东西
FileInfo _fileinfo = new FileInfo(File.Empty);
然而,只有一个FileInfo
构造函数,它似乎需要一个有效的文件。创建一个空初始化的 FileInfo 对象的任何解决方案,它不需要创建一个空的虚拟文件?
我使用输入字符串添加了一个替代代码路径,而不是从文件中读取。我需要一个空的 FileInfo 对象,因为我有许多访问Name
,Length
和Extension
属性的实例。
理想情况下,我正在寻找类似的东西
FileInfo _fileinfo = new FileInfo(File.Empty);
然而,只有一个FileInfo
构造函数,它似乎需要一个有效的文件。创建一个空初始化的 FileInfo 对象的任何解决方案,它不需要创建一个空的虚拟文件?
我刚刚遇到了类似的问题。你觉得从以下几点开始:
FileInfo _fileinfo = null;
之后,你可以这样做:
_fileinfo = new FileInfo(<string of file with path>);
然后,您将拥有一个可以作为参数传递给您的方法的对象。在尝试获取 .Name 等的值之前,不要忘记检查您的对象是否为空
if(null != _fileinfo)
{
//some code
}
正如评论中所指出的,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
测试等。