3

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

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

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

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

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

Решения пробовали:

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

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

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

4 ответа4

2

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

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

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

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

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

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

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

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

7 и 8 UNC путей в сети.

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

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

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

  • Соглашение об именовании документов (например, документы с длинным описанием - Аннотация, Авторы, Заголовок, DOI - в качестве названия для быстрого поиска и поиска)

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

2

Я бы загрузился на 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)

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

0

Вот что сработало для меня в аналогичной ситуации:

Сначала попытался это взять на себя владение:

takeown /r /d y /f my_folder

Это не работает для некоторых файлов. Затем я использовал Cygwin, который я уже установил, и просто запустил:

rm -rf path/to/my_folder

Вуаля, ушел.

0

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

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

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