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

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

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, файлы там будут переименованы.

Теги

 

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

Port-forwarding перенаправление портов в Windows

Начиная с Windows XP в операционной системе Windows имеется встроенная возможность перенаправления сетевых портов — port-forwarding. Более того, любое входящее TCP соединение можно перенаправить не только на другой порт, но и на другой IP адрес.

Теги

MySQL 8 — mysqldump в командной строке

Разрешаем запускать mysqldump в командной строке. MySQL 8 установлен в Windows Server 2016. Понадобилось мне как-то написать скрипт для резервного копирование баз mysql. Всё что нужно сделать, это отредактировать переменную PATH.

Теги