Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/185: Рейтинг темы: голосов - 185, средняя оценка - 4.63
10 / 10 / 4
Регистрация: 05.08.2009
Сообщений: 101

Как узнать, используется ли файл другим процессом

18.02.2010, 16:44. Показов 36753. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Снова здравствуйте. У меня вопрос: как можно проверить или узнать, используется ли файл другим процессом, а то иногда возникает исключение, типа: "Процесс не может получить доступ к файлу "Путь к файлу + его расширение", так как этот файл используется другим процессом." Файл пытаюсь записать в строку так:
C#
1
                string str_1 = File.ReadAllText("Полный путь  к некоторому файлу + его расширение", Encoding.GetEncoding(1251));
Сразу отмечу, что исключение выпадает на Windows 7 и файл находится на моём компьютере. Запуск моего приложения под правами админа также выдаёт вышеуказанное исключение.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.02.2010, 16:44
Ответы с готовыми решениями:

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

Процесс не может получить доступ к файлу, так как этот файл используется другим процессом
Вот такой код using (FileStream sw = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite)) ...

Как удалить файл который занят другим процессом?
Все Здрасте! Уважаемые такая проблема, облазил весь интернет не нашел подходящего решения. Пишу сюда в надежде получить правильный ответ. ...

9
 Аватар для Konctantin
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
18.02.2010, 17:37
а до этого вы обращались к этому файлу?
и если можно больше кода...
1
10 / 10 / 4
Регистрация: 05.08.2009
Сообщений: 101
18.02.2010, 18:20  [ТС]
Лично я к этому файлу не обращался, а вот какой-то процесс его по ходу дела использует. Файл находится где-то глубоко в системе во временной папке пользователя (вот имя файла C:\Users\Лёха\AppData\Local\Temp\FXSAPID ebugLogFile.txt"). Меня интересует, есть какой-нибудь способ, чтобы проверить используется ли этот файл каким-либо процессом или нет (вот другой текстовый файл открытый на чтение, код приложенный мною выше занесёт в строку).
0
мну довольно <(-__-)l
 Аватар для gGrn-7DA
217 / 206 / 15
Регистрация: 17.01.2010
Сообщений: 2,462
18.02.2010, 19:53
C#
1
2
3
4
5
6
7
8
try
{
    string str_1 = File.ReadAllText("Полный путь  к некоторому файлу + его расширение", Encoding.GetEncoding(1251));
}
catch(AccessViolationException e)//вроде это исключение
{
    //обработчик исключения
}
что бы узнать какой процесс использует файл - загрузи и установи Unlocker
Далее правым кликом по файлу(или по папке содержащей файл) запусти Unlocker, и он выведет окно со списком активных процессов работающих с файлом(или с папкой, в этом случае просто нужно найти строчку со своим файлом).
0
10 / 10 / 4
Регистрация: 05.08.2009
Сообщений: 101
20.02.2010, 15:51  [ТС]
Прошу меня извинить - неправильно сформулировал вопрос. Нужно было любым образом прочитать текстовый файл, который занят другим процессом. Решил это через FileStream в связке со StreamReader, но вот беда, есть такие файлы к которым "отказано в доступе по пути" + путь и расширение. Файл C:\Windows\System32\restore\MachineGuid. txt на WIndows 7 - можно ли как-нибудь занести его содержимое в строку - очень нужно. Если этот файл скопировать в другое место на диске, то его можно занести в строку, а по указанному мною выше пути - нет. Что можно сделать, чтобы прочитать этот файл и занести его содержимое в строку.
0
CEO
Эксперт С++
 Аватар для Alligieri
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
20.02.2010, 18:38
lekha2009, файл содержится в системной папке - потому система и блокирует к нему доступ. Почитайте про обход UAC, хотя это плохие методы работы приложения и не знаю поможет ли в этом случае.
1
 Аватар для SoproMaster
50 / 50 / 1
Регистрация: 12.10.2009
Сообщений: 152
18.03.2010, 00:46
Похожая проблема, также Win7... Не удаляется изображение, так как "занято другим процессом". Unlocker не находит блокирующий дескртиптор. Возможно поможет FileStrean.Dispose(), но тоже пока безрезультатно.
0
13 / 13 / 2
Регистрация: 01.12.2009
Сообщений: 37
18.03.2010, 22:25
Впоймать исключение и в обработке скопировать файл,потом прочитать
C#
1
2
3
4
5
6
catch 
            {
                File.Copy(fileName, "Log.txt", true);
                fileLines = File.ReadAllLines("Log.txt");
                File.Delete("Log.txt");
            }
Для win7 есть твик реестра - 2 рег файлика один добавляет в контекстное меню диалог сменить владельца директории(т.е. с системы на общий) второй восстанавливает изменения.Могу выложить.
0
shodany
10.05.2010, 18:52
SoproMaster,

Код:

C#
1
2
3
4
FileStream fs = new FileStream(file, FileMode.Open);
Image i = Image.FromStream(fs);
fs.Close();
File.Delete(file);
1 / 3 / 0
Регистрация: 30.09.2015
Сообщений: 13
30.09.2015, 23:23
Люди добрые! У меня похожая проблема, только я знаю какой процесс использует файл.
Нужно как то дождаться завершения процесса а потом удалить все файлы из папки.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
private void ClearTemp(string tempDir, string SevenZipFile)
        {
            mainForm.imageListView1.Items.Clear();
            mainForm.imageViewControl1.imageBox1.Image = null;
            
            string[] fileEntries = Directory.GetFiles(tempDir);
            foreach (string fileName in fileEntries)
            {
                File.Delete(fileName);
            }
 
            SevenZipExtract(SevenZipFile);
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.09.2015, 23:23
Помогаю со студенческими работами здесь

Как удалить или очистить файл, используемый другим процессом?
Есть приложение, которое 3 раза в минуту записывает данные в текстовый файл. Нужно написать приложение на C#, которое 1 раз в минуту будет...

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

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

StreamReader не может открыть файл, открытый на запись другим процессом
Сабж. Как обойти? :help:

Синхронизация файлов в двух папках. При работе с большими файлами возникает ошибка "Файл занят другим процессом"
Доброго времени суток. У меня такой вопрос. Пишу программу для синхронизации данных в двух директориях. Синхронизация происходит как по...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru