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

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

18.02.2010, 16:44. Показов 36705. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru