Это проблема, которая имеет тысячи сообщений в Интернете, но я не могу найти ответы, которые специально подходят для GUI + проверенное перемещение / копирование, поэтому это не выглядит как дублирующий вопрос.

Я хочу использовать проверенный файловый менеджер перемещения / копирования на основе графического интерфейса. Если бы не было длинных путей и проверки, это было бы легко - многие файловые менеджеры допускают перемещение / копирование файлов с проверкой хэша, а многие файловые менеджеры разрешают UNC и пытаются обойти проблемы длинных путей. Моя основная установка для этого - Windows 8.1 +FreeBSD 11 +Samba 4.6.

Сложность в том, что я не нашел надежного способа сделать это. Даже мои менеджеры длинных имен файлов с проверкой, такие как XYPlorer и FasyCopy, попадают на длинные пути, где я бы этого не ожидал.

Поэтому я ищу подходы, которые в идеале полностью избегают Windows API, за исключением локальных файлов, чтобы я мог управлять удаленными файлами, не беспокоясь о длине пути. Но и здесь это сложно: SCP на основе графического интерфейса (WinSCP, Filezilla) будет в порядке, за исключением того, что они формально не выполняют проверку хэша источника и цели после перемещения / копирования и FISH, которые могут помочь перенести файловую активность на сервер. , не имеет полного клиента Windows.

Мне нужна функциональность, которая заключается в перемещении / копировании / переименовании внутри общего ресурса, между общими ресурсами на одном компьютере, между общими ресурсами на разных компьютерах и между Windows и общим ресурсом, но в каждом случае следует избегать API-интерфейсов Windows для удаленного доступа к файлам, если они не может правильно обрабатывать длинные пути.

Другое преимущество, которое я ищу, - это выполнение файловых операций на стороне сервера непосредственно на сервере и вне сети, снова проверяя, куда физически записываются или перемещаются данные.

К сожалению, я обнаружил, что даже программы, которые утверждают, что обрабатывают длинные пути, похоже, не справляются с этой задачей. Когда я делаю перемещение / копирование файлов, используя их, это немного помогает, но я часто получаю кучу ошибок, которые предполагают, что у них все еще есть проблемы с обработкой длинных путей на практике, и я не хочу постоянно сомневаться в своих данных целостность копирования / перемещения или перемещение объектов во временные местоположения только для того, чтобы манипулировать ими, когда в удаленном хранилище фактически нет проблем с длинными путями.

Я ищу способ ударить его по голове, но какие методы могут помочь? Я не хочу сокращать пути к файлам или использовать CLI в этом случае (что было бы непросто в любом случае здесь), поскольку сопоставление букв дисков не очень помогает или требует слишком много букв, используя "\\?\"помогло бы, если бы проблема была с локальными, а не удаленными файлами, поскольку удаленные файлы уже являются UNC, SCP обычно не включает явную проверку, особенно в файловых менеджерах GUI ......

Я не пробовал настраивать X Windows, поэтому я работаю в графическом интерфейсе непосредственно на сервере, когда это файл сервера, но это не поможет для Windows удаленно. Я также не смотрел на файловые менеджеры, которые разрешают расширения копий - например, те, которые позволяют добавлять дополнительные методы копирования / перемещения (такие как эквиваленты команд ADB или команд оболочки) в виде сценария или аналогичного. Помимо этого у меня нет идей.

Какие варианты я мог пропустить?

1 ответ1

0

Не знаю, почему никто еще не упомянул об этом, но я обнаружил, что более простой (хотя и немного более медленный) метод состоит в том, чтобы просто сжать папку, скопировать ее и распаковать. Обратите внимание, что вы используете стороннюю zip-программу, такую как 7zip, в окнах, встроенных в программу, могут быть те же ограничения пути к файлам. В качестве альтернативы вы можете переместить сильно вложенную папку в каталог более высокого уровня, скопировать ее, а затем переместить обратно во вложенную папку.

Не уверен, почему это работает, но согласно этой статье окна имеют максимальную длину для имени файла, но по какой-то причине во время операций копирования он проверяет длину всего пути к файлу.

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