Я использую
FileInfo
класса, чтобы получить длину файла следующим образом:
FileInfo infoFile = new FileInfo(@"C:\Text12341234");
long configFileLength = infoFile.Length;
Я хочу избавиться от объекта, созданного
FileInfo
класс. Я получаю сообщение об ошибке "Файл уже используется другим процессом". Как я могу это сделать?
FileInfo
не реализует IDisposable
, поэтому вы не можете его утилизировать.
Любые результаты других методов, которые вы вызываете в FileInfo
которые реализуют IDisposable
должны обрабатываться на фактическом объекте, а не на FileInfo
.
Вы должны использовать с using
:
using (FileStream s = File.Create(Application.StartupPath + @"\Client.config.xml"))
{
// your code using s
}
FileInfo
не открывает поток. Если вы использовали такие методы, как OpenRead
вам нужно закрыть Stream
вы открыли, вызвав метод Close
Или просто оберните выражение с using
.
У вашего кода нет проблем с запуском, нет необходимости распоряжаться; Я думаю, что этот фрагмент кода поможет вам:
var f = new FileInfo(@"d:\ntt.txt");
var fs = f.Create();
// you can use dispose here, for it returns filestream
fs.Dispose();
using
шаблона, таким образом, он корректно располагается в случае исключений и облегчает написание читаемого кода.
FileInfo
; код, который вы разместили, не создает файл.