Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.83
Влад.pas
11 / 11 / 4
Регистрация: 30.08.2011
Сообщений: 62
#1

Отказано в доступе к файлу, т.к. он занят другим процессом - C#

23.02.2012, 16:02. Просмотров 2908. Ответов 6
Метки нет (Все метки)

Доброго времени суток!
http://www.cyberforum.ru/csharp-beginners/thread1519927.html
Появилась проблема: имеется файл "Error" , имеется программа. Программа разделена на две части - первая создает файл "Error", вторая его удаляет. Создание файла проходит успешно. Но при удалении Visual Studio выдает ошибку: файл занят другим процессом, видимо созданием. Но при удалении файл "Error" давно уже создан. Вопрос: как снять с файла "Error" процесс создания после создания? Или дело в другом каком-то процессе?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2012, 16:02
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Отказано в доступе к файлу, т.к. он занят другим процессом (C#):

Файл занят другим процессом
Здравствуйте. Проблема стара как мир, но разобраться с ней у меня не...

Файл занят другим процессом
the process cannot access the file... because it is being used by another...

Исключения System.IO, занят другим процессом
Подскажите пл. какое исключение обрабатывать если каталог (и, или) файл в нём,...

Файл занят используется другим процессом при попытке его удаления
Помогите пожалуйста, знаю, уже было кучу раз, но ничего из уже предложенного не...

Как прочитать лог-файл, если в это время он занят другим процессом
Здравствуйте. Пытаюсь делать Лог-файл и посчитать количество строк в файле....

6
Wurgengel
16 / 16 / 2
Регистрация: 23.02.2012
Сообщений: 98
23.02.2012, 16:25 #2
C#
1
2
3
4
5
6
7
8
            // Создаем поток для записи
            StreamWriter sw = new StreamWriter(path, true, Encoding.Default);
            // Записываем строку
            sw.WriteLine(DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss") + " - " + sInStr);
            // Сбрасываем кэш потока
            sw.Flush();
            // Закрываем поток
            sw.Close();
2
Влад.pas
11 / 11 / 4
Регистрация: 30.08.2011
Сообщений: 62
23.02.2012, 19:08  [ТС] #3
Wurgengel, а как организовать сброс потока у File.Create?
0
Wurgengel
16 / 16 / 2
Регистрация: 23.02.2012
Сообщений: 98
23.02.2012, 22:47 #4
Цитата Сообщение от Влад.pas Посмотреть сообщение
Wurgengel, а как организовать сброс потока у File.Create?
Там тоже так же.
0
Tolias28
206 / 126 / 8
Регистрация: 18.08.2010
Сообщений: 1,009
24.02.2012, 15:50 #5
Цитата Сообщение от Wurgengel Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
            // Создаем поток для записи
            StreamWriter sw = new StreamWriter(path, true, Encoding.Default);
            // Записываем строку
            sw.WriteLine(DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss") + " - " + sInStr);
            // Сбрасываем кэш потока
            sw.Flush();
            // Закрываем поток
            sw.Close();
Если я не ошибаюсь, то перед методом Close() писать Flush() необязательно, так как Close() перед закрытием потока сбрасывает весь буфер в него (чем и занимается Flush()). То есть, использование подряд Flush() и Close() неоптимально и лишнее. Flush() нужно использовать только в том случае, если только что проведенные изменения в потоке нужно срочно сбросить в файл. В других случаях рекомендуется для повышения производительности не делать этого самостоятельно (при закрытии потока данные и без того сбрасываются с буфера).
1
Wurgengel
16 / 16 / 2
Регистрация: 23.02.2012
Сообщений: 98
25.02.2012, 18:27 #6
Цитата Сообщение от Tolias28 Посмотреть сообщение
Если я не ошибаюсь, то перед методом Close() писать Flush() необязательно, так как Close() перед закрытием потока сбрасывает весь буфер в него (чем и занимается Flush()). То есть, использование подряд Flush() и Close() неоптимально и лишнее. Flush() нужно использовать только в том случае, если только что проведенные изменения в потоке нужно срочно сбросить в файл. В других случаях рекомендуется для повышения производительности не делать этого самостоятельно (при закрытии потока данные и без того сбрасываются с буфера).
У меня обрезал файл. Может это и глюк сборки был и сейчас не надо, но раньше обрезание файла было.
0
Tolias28
206 / 126 / 8
Регистрация: 18.08.2010
Сообщений: 1,009
25.02.2012, 22:25 #7
Цитата Сообщение от Wurgengel Посмотреть сообщение
У меня обрезал файл
в смысле обрезал?
у меня ни разу ничего подобного не было...
0
25.02.2012, 22:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.02.2012, 22:25
Привет! Вот еще темы с решениями:

Процесс не может получить доступ к файлу, так как этот файл используется другим процессом
Программа отправляет на сервер сообщение из файла(должна), но выдаёт...

Процесс не может получить доступ к файлу так как этот файл используется другим процессом
using System; using System.Collections.Generic; using System.Linq; using...

Файл занят другим процессом
Запускаю программу в несколько потоков. В итоге получаю данную ошибку. ...

Ошибка: Файл занят другим процессом
Доброго времени суток. Пишу программку которая должна перемещать изображения с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru