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