
У меня есть каталог, содержащий файл, который я хочу удалить. Однако имя файла слишком длинное:
> Remove-Item -Recurse target
Remove-Item : The specified path, file name, or both are too long. The fully qualified
file name must be less than 260 characters, and the directory name must be less than
248 characters.
Я также не могу удалить его с помощью shift+ deleteв проводнике Windows:
Я также не могу переместить файл, так как его имя слишком длинное. Есть ли способ удалить файл? Я использую Windows 8.1. Бонусные баллы, если вы сможете объяснить, как такой файл вообще мог оказаться на моем диске, и почему Explorer и PowerShell не могут его удалить.
решение1
Вы должны быть в состоянии сделать это с помощьюDeleteFile()
и путь, используя длинную запись пути, например \\?\C:\path\to\your\file.class
.
Со страницы MSDN по ссылке:
В версии ANSI этой функции имя ограничено
MAX_PATH
символами. Чтобы расширить этот предел до 32 767 широких символов, вызовите версию функции Unicode и добавьте ее"\\?\"
к пути. Для получения дополнительной информации см.Присвоение имени файлу.