2014-10-13 5 views
0

Я использую классКак удалить объект, созданный классом FileInfo?

FileInfo 

, чтобы получить длину файла следующим образом:

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

Я хочу, чтобы расположить объект, созданный

FileInfo 

класса. Я получаю сообщение об ошибке «Файл уже используется другим процессом». Как я могу это сделать?

+2

Как вы располагали? Я не вижу этого. –

+1

Эта проблема не вызвана 'FileInfo'; код, который вы отправили, не создает файл. –

+0

Я создаю свой файл следующим образом: –

ответ

5

FileInfo не реализует IDisposable, следовательно, вы не можете распоряжаться им.

Любые другие результаты, которые вы вызываете по телефону FileInfo, которые выполняют IDisposable, должны быть обработаны на самом объекте, а не на FileInfo.

Вы должны использовать using:

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

FileInfo не открывает stream.If вы использовали такие методы, как OpenRead вам нужно закрыть Stream вы открыли по телефону Close method.Or просто обернуть заявление с using.

+1

следует использовать предпочтительное использование, когда реализуется IDisposable. В случае Исключения вы не должны иметь блок finally, где вы вызываете закрытие. – Dom84

0

Ваш код не имеет никаких проблем не работающих, нет необходимости распоряжаться; Я думаю, что этот фрагмент кода поможет вам:

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

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