C# 如何处置由类FileInfo创建的对象?
我正在使用C# 如何处置由类FileInfo创建的对象?,c#,.net,C#,.net,我正在使用 FileInfo 类以获取文件的长度,如下所示: FileInfo infoFile = new FileInfo(@"C:\Text12341234"); long configFileLength = infoFile.Length; 我要处理由创建的对象 FileInfo 班级。 我收到一个错误,“文件已被另一个进程使用。” 我该怎么做 FileInfo不会打开流。如果您使用类似OpenRead的方法,则需要关闭通过调用close方法打开的流。或者只需使用using将语
FileInfo
类以获取文件的长度,如下所示:
FileInfo infoFile = new FileInfo(@"C:\Text12341234");
long configFileLength = infoFile.Length;
我要处理由创建的对象
FileInfo
班级。
我收到一个错误,“文件已被另一个进程使用。”
我该怎么做
FileInfo
不会打开流。如果您使用类似OpenRead
的方法,则需要关闭通过调用close
方法打开的流。或者只需使用using
将语句包装成FileInfo
不实现IDisposable
,因此无法处理它
您在FileInfo
上调用的、实现了IDisposable
的其他方法的任何结果都必须在实际对象上处理,而不是在FileInfo
上处理
您应该使用使用:
using (FileStream s = File.Create(Application.StartupPath + @"\Client.config.xml"))
{
// your code using s
}
您的代码在运行时没有问题,不需要处理;我认为这段代码将帮助您:
var f = new FileInfo(@"d:\ntt.txt");
var fs = f.Create();
// you can use dispose here, for it returns filestream
fs.Dispose();
你是怎么处理的?我看不到这方面的代码。这个问题不是由FileInfo
引起的;您发布的代码没有创建该文件。我创建的文件如下:file.create(Application.StartupPath+@“\Client.config.xml”);最好在实现IDisposable的地方使用。在出现异常的情况下,不需要使用finally块来调用close。如果可能,请使用using
模式,这样可以在出现异常的情况下正确地处理它,并且更容易编写可读代码。