Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何处置由类FileInfo创建的对象?_C#_.net - Fatal编程技术网

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
模式,这样可以在出现异常的情况下正确地处理它,并且更容易编写可读代码。