在没有现有文件的情况下在C#中创建一个空的FileInfo对象

时间:2012-09-20 17:10:17

标签: attributes c#-3.0 fileinfo

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

理想情况下,我正在寻找像

这样的东西
FileInfo _fileinfo = new FileInfo(File.Empty);

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

2 个答案:

答案 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测试等。

相关问题