Невозможно удалить файл; имя слишком длинное

Невозможно удалить файл; имя слишком длинное

Этот вопрос был задан, но, к сожалению, ни одно из предложений не сработало.

Вот ситуация: файл синхронизирован с локальной папкой на моем компьютере в папке /users из Google Drive. Это pdf (похоже на сохраненный чек откуда-то). Имя содержит >255 символов, что сбивает Windows с толку.

Что файл не будет делать

  • Открыть
  • Копировать
  • Переименовать
  • Двигаться
  • Вставить
  • показать свойства

На самом деле я не получил от файла никакого ответа, кроме той же ошибки.

Пробованные решения:

  • dir /x--сокращенное имя не указано, просто повторяется обычное имя.
  • Использую FileBoss, Explorer++, 7zip
  • rmdir /S /Q <dir>на самом деле не работает, так как находится в моей пользовательской папке...

Если у кого-то есть идеи, которые можно попробовать реализовать, я буду открыт для них.

Редактировать — в этом случае само имя файла больше 255 символов. Изменение каталогов, в которые он вложен, не повлияет на проблему, поскольку нет проблем с путем к файлу. (Эта проблема сама по себе исключает множество других решений).

решение1

Я бы загрузился вLinux Live Disc, смонтируйте диск Windows и извлеките его с помощью Linux/Unix.

Я думаю, что основные команды, которые вам понадобятся, это:

mount -t ntfs-3g /dev/sdX# /mnt
cd /mnt/Users/You
rm -f further/loc/away.filename

(Примечание: вам может потребоваться запустить , fdisk -lчтобы найти раздел Windows)

и это должно привести вас туда. Мне тоже пришлось это сделать в какой-то момент времени.

решение2

В Windows просто используйтефайловый менеджер или любое другое приложение типа проводника, которое использует версии API Unicode для обработки файлов.Дубликатыи дополнительная информация:

(1) Техническая подоплека проблемы: ограничение MAX_PATH (см. также (4)).

(2) Как преодолеть это ограничение на уровне программиста.

(3) Как преодолеть это ограничение на уровне пользователя.

Пожалуйста, имейте в виду, что (3) — это ТОЛЬКО обходной путь. Он ни в коем случае не подходит для программирования. Хуже всего то, что ребята из Microsoft смешивают API, что может привести полностью совместимое с UNC-path приложение к 260-MaxPath-StoneAge из-за всего лишь одного вызова несовместимого API (ср. (2)).Исследовательидругие продукты(включая cmd и powershell) от Microsoft, возможно, никогда не преодолеют эту проблему из-за своей истории (голосования по ссылкам за устранение ограничения либо игнорируются, либо отклоняются).

В зависимости от варианта использования и версии предел, похоже, меняется. Проводник Windows 8, похоже, способен обрабатывать примерно в 4 раза более длинные пути (4), тогда как начиная с Windows 7 самый длинный путь файла, который можно переместить в корзину, уменьшился с 259 до 215 (5). Почему программисты, начинавшие с нуля с Windows NT, не реализовали динамическое распределение, остается загадкой. Описан подход для сегодняшней ситуации с использованием не-Unicode APIздесь(копия).

Другие темы, связанные с программированием и путями UNC в сети SO:

6UNC-пути в Java и их реализация на уровне JVM.

7&8UNC-пути в сети.

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

  • Организация иерархий исходного кода:nodeJS

  • Резервное копирование файлов в глубоко вложенных структурах папок

  • Соглашение об именовании документов (например, статей, имеющих длинное описание — Аннотация, Авторы, Название, DOI — в качестве имени для быстрого поиска)

  • Обмен файлами между Linux (где нет такого ограничения) и Windows

решение3

Вы можете попробовать стать владельцем файла и посмотреть, сможете ли вы удалить его. Вы можете сделать это, щелкнув правой кнопкой мыши по файлу: Свойства -> Безопасность -> Дополнительно -> Владелец -> Изменить, а затем измените владельца на свое имя пользователя (или группу администраторов).

Для получения более подробной информации проверьтеэтотвне.

решение4

Если файл был создан на Google Диске, почему бы не удалить его с помощью одного из интерфейсов Google Диска (веб, Android и т. д.) или не переименовать его там?

Связанный контент