ソースパスが長すぎます - しかし、以前はそうではありませんでした

ソースパスが長すぎます - しかし、以前はそうではありませんでした

外付けハードドライブからデスクトップにバックアップデータをコピーしようとすると、次のエラーが発生します。

ソース ファイル名がファイル システムでサポートされている長さを超えています。この操作を実行する前に、パス名が短い場所に移動するか、ファイル名を短い名前に変更してみてください。

そして、それは本当に迷惑で、今ではそれらのファイルを取得できないため、特定の操作を実行できません。私は自分のものを整理しておくのが好きですが、Windows は長い場所をサポートできないようです。つまり、物事を好きなように整理しておくことができません。しかし、これは以前は問題ではありませんでした。古いコンピューターでは、常にこれらのバックアップ ファイルをコピーしていましたが、この新しい PC (10 億倍優れているはず) を入手してから初めてこのエラーが発生しています。

また、コピーが完了するまでファイル/フォルダの名前を 1 文字だけに変更するのは適切な解決策ではありません。どうすればこれを修正できますか? また、同じバージョンの Windows を搭載した低スペックの PC ではこの問題が発生したことがなかったのに、同じバージョンの Windows を搭載した高スペックの PC ではなぜこの問題が発生するのでしょうか?

答え1

C:\%HOMEPATH%\Documents などの Windows ユーザー フォルダーを使用している場合、またはその他のさまざまな理由により、以前よりも深くネストされている可能性があります。

構造をフラット化して名前を短くすることが、唯一の選択肢です。問題のあるディレクトリをクリーンアップするには、ファイルを新しいフォルダに安全に保存し、古いフォルダを次のようにクリーンアップします。

組み込みコマンド ROBOCOPY を使用します。何もインストールする必要はありません。別のドライブに完全に空 (e:) の不良フォルダ (d:) のレプリカを作成します。次に、これらのパラメータを使用して robocopy を実行します。

robocopy e:\folder d:\folder /Purge /E /S /R:0 /W:0

役立つと思われるリソースがあと 2 つあります。

皮肉な名前の URL で... http://vimalsuresh.com/2013/08/08/how-to-fix-file-path-too-long-error-while-copying-deleting-or-opening-files-without-using-third-party-applications/

また、CMD が気に入らない場合は、長すぎるファイルにアクセスするためのユーティリティ (バックアップがあることを前提とします)... http://backupchain.com/DeleteLongPath.html

答え2

ただ言いたかったのはフォルダ名やファイル名を変更する必要はありません他の回答が示唆しているように、robocopy コマンドを使用することもできますが、フォルダーを zip 圧縮し、その zip をコピーして解凍する方が簡単 (ただし少し遅い) な方法であることがわかりました。または、ネストされたフォルダーを上位レベルのディレクトリに移動し、コピーしてから、ネストされた場所に戻すこともできます。

なぜこれが機能するのかは分かりませんが、この記事Windowsにはファイルの最大長があります名前ただし、何らかの理由で、コピー時にファイル パス全体の長さがチェックされます。

関連情報