Перейти к основному содержанию

Удалить неудаляемый файл

Windows

Иногда файл не получается удалить. Ниже несколько способов удалить неудаляемое. Не буду писать как сделать это самое — неудаляемое, оно как-то само возникает.

Неудаляемым может быть:

  • Файл с длинным полным путём.
  • Файл с пробелом на конце.
  • Файл с двумя точками на конце.
  • Файл с недопустимым символом в названии.

Удалить файл с длинным именем

Я уже описывал способ удаление файла с длинным именем.

Windows — удалить файл с длинным именем

7-Zip

Заархивировать файл с удалением источника с помощью архиватора 7-Zip:

7-Zip — бесплатный архиватор

robocopy

Утилита умеет работать с длинными путями:

mkdir dir_for_del
robocopy dir_for_del long_path_file_dir /MIR
rmdir dir_for_del
rmdir long_path_file_dir

subst

С помощью subst к папке с файлом:

subst Z: "C:\long-path\photo"

Теперь ненужные файлы можно просто удалить с диска Z. Виртуальный диск удаляется командой:

subst Z: /d

Поддержка длинных имён в проводнике

Ещё один способ, включить в проводнике Windows 10 поддержку длинных путей:

reg add "HKLM\SYSTEM\CurrentControlSet\Control\FileSystem" /v LongPathsEnabled /t REG_DWORD /d 1

После перезагрузки проводник должен обрести суперспособность удалять файлы с длинными путями.

Удалить в пространстве имён файлов Win32

Можно попытаться удалить файл в пространстве имён файлов Win32:

del "\\?\C:\long-path\file.xxx"

Удалить файл с пробелом на конце

Снова на помощь приходит конструкция:

del "\\?\C:\long-path\file.xxx "

Удалить файл с двумя точками на конце

Снова нам поможет:

del "\\?\C:\long-path\file.."

Удалить файл с недопустимыми символами

В Linux можно создать файл с недопустимым символом в названии, например, "my*file.txt". Такой файл не удаляется в Windows. Поможет chkdsk:

CHKDSK из командной строки

CHKDSK C: /F /R

После перезагрузки chkdsk отработает и поместит файлы с недопустимыми символами в скрытую папку вида found.000, файлы там будут переименованы.

Теги

 

Похожие материалы

Лечим ошибку EventID 8193 в Windows Server 2012 R2

После установки роли DHCP Server при каждой загрузке сервера в журнале появляется ошибка: Volume Shadow Copy Service error: Unexpected error calling routine RegOpenKeyExW(-2147483646,SYSTEM\CurrentControlSet\Services\VSS\Diag,...). hr = 0x80070005, Access is denied.

Теги

Работа с реестром Windows из командной строки или BAT файла

Нужно добавить запись в реестр с помощью BAT файла? Хотите по расписанию править ветки реестра? Нужно исправить значение реестра в командной строке? Легко!

Теги