如何处理由FileInfo类创建的对象?

时间:2014-10-13 09:30:53

标签: c# .net

我正在使用

FileInfo

获取文件长度的类,如下所示:

FileInfo infoFile = new FileInfo(@"C:\Text12341234");
long configFileLength = infoFile.Length;

我想处理由

创建的对象
FileInfo 

类。 我收到一个错误,“文件已被其他进程使用。” 我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:5)

FileInfo未实现IDisposable,因此您无法处置它。

您在FileInfo上调用的实施IDisposable的其他方法的任何结果都必须在实际对象上处理,而不是在FileInfo上处理。

您应该使用using

using (FileStream s = File.Create(Application.StartupPath + @"\Client.config.xml"))
{
    // your code using s
}

答案 1 :(得分:1)

FileInfo没有打开流。如果您使用OpenRead等方法,则需要通过调用Stream方法关闭您打开的Close。或者只是用using包装你的陈述。

答案 2 :(得分:0)

您的代码运行没有问题,无需处理;我认为这段代码可以帮到你:

var f = new FileInfo(@"d:\ntt.txt");
var fs = f.Create();

// you can use dispose here, for it returns filestream
fs.Dispose();