1

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

Файл создается во временной папке (userfolder\AppData\Local\Temp). Я могу переместить его куда угодно, я могу переименовать его, но я не могу удалить его.

Поэтому я создал отдельную папку, куда я могу переместить временный файл. Я получаю одну копию каждый раз, когда хочу открыть программу, поэтому я переименовываю эти копии. Но их сейчас слишком много, и я хотел бы от них избавиться.

Когда я пытаюсь удалить один, я получаю сообщение:

Действие не может быть завершено, потому что файл открыт в системе

Самое смешное, что даже если я перезагружаю систему, когда я захожу в созданную мной отдельную папку для хранения этих файлов и пытаюсь удалить ее, я все равно получаю это сообщение.

Я пытался:

  • Назначение прав собственности на файлы (они изначально принадлежат Системе);
  • Назначение разрешений другим учетным записям пользователей, включая "Все", и проверка наличия у всех прав на удаление файлов.
  • Удаление всех атрибутов файла;
  • Перезагрузка, как указано выше. Я даже сделал это несколько раз;
  • Изменение не только имен файлов, но и расширений;
  • Unlocker (программа, которая обещает решить такую проблему, но у меня она не работает);
  • Проходя через командную строку. Это просто говорит, что access denied .

Что еще я могу попробовать? Как я могу помешать процессу System открыть эти файлы, чтобы я мог от них избавиться?

1 ответ1

1

Хороший список идей. Другие более экстремальные вещи, чтобы попробовать:

  • Загрузиться в безопасном режиме
  • Смонтировать диск на другой машине

Вы можете использовать ProcessExplorer, чтобы увидеть, какой (если есть) процесс имеет дескриптор файла:

  • Ctrl+L (показать нижнюю панель)
  • В нижней панели Ctrl+F для имени файла

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .