2016-08-29 2 views
0

Не могу понять, зачем мне нужно утилизировать файл File.Create или обернуть создание на используемой станции перед тем, как получить доступ к файлу и написать ему. Зачем мне удалять экземпляры Поток класс, который Файл.Создание инициализировано, и ему нужно создать еще один Поток экземпляр для записи на него? Почему они?Поймите FileStream в File.Create и File.Write

Почему невозможно создать, написать и удалить одно и то же сообщение Stream? Возможно, я просто не понимаю Поток.

Например:

File.Create(...); 
File.ReadLine(...); <-- The process cannot access the file ... because it is being used by another process 

using (File.Create(...)) {}; 
File.ReadLine(...); <-- OK 
+0

Возможно, я не понимаю, но вы можете использовать один и тот же экземпляр потока среди записи, чтения и т. Д. Вам также не нужно обтекать поток в USING - вы можете утилизировать вручную после использования. Dispose - это предотвращение проблем с памятью и сама по себе не нужна даже на 100%, поскольку программа все равно будет компилироваться и запускаться, если вы не уничтожаете. Возможно, вы могли бы поделиться определенным кодом, чтобы описать ваши вопросы. –

+0

'File.ReadLine (...)' неправильно, нет такой вещи, это 'File.ReadLines (...)', вы можете попробовать что-то вроде 'var fs = File.Create (...); fs.Dispose(); File.ReadLines (...); ' –

+0

Да. И я хочу знать, почему fs.Dispose() - вот в чем вопрос. – KMC

ответ

2

увидеть замечаний раздел на File.Create страницу на MSDN (курсив мой):

FileStream Объект, созданный этим способом, имеет значение по Обменник умолчанию of None; никакой другой процесс или код не могут получить доступ к созданному файлу до тех пор, пока исходный дескриптор файла не будет закрыт.