Скорее всего, когда вы загрузили файл, вы не закрыли FileStream
или что-то еще, что использовали для его чтения.Всегда используйте оператор using
для своих потоков (и других типов, реализующих IDisposable
), и это не должно быть проблемой.(Конечно, если у вас на самом деле открыт этот файл в отдельном приложении, это совершенно другая проблема.)
Поэтому вместо:
// Bad code
StreamReader reader = File.OpenText("foo.txt");
string data = reader.ReadToEnd();
// Nothing is closing the reader here! It'll keep an open
// file handle until it happens to be finalized
Вы должны использоватьчто-то вроде:
string data;
using (TextReader reader = File.OpenText("foo.txt"))
{
data = reader.ReadToEnd();
}
// Use data here - the handle will have been closed for you
Или, в идеале, используйте методы из File
, которые делают все это для вас:
string text = File.ReadAllText("foo.txt");