Windowsで「ファイル名が長すぎます」問題を修正する方法


この問題をご覧になったことがある方は、おそらく簡単な修正方法でしょう。このエラーが2回以上発生している場合は、修正するのが複雑な問題になることもあります。

簡単な修正の種類にしか出会えないことを願っていますが、簡単ではなく、動作が保証されている修正も用意します。

Windowsでファイル名の長さが問題になる理由

Windowsなどのオペレーティングシステムでは、ファイル名の長さが問題であるという長い歴史があります。 8文字と3文字のファイル拡張子を超えるファイル名を使用できない場合がありました。できることはmyresume.docのようなものでした。これは、ファイルシステムの設計による制限でした。

Windowsの新しいバージョンが登場するにつれて、事態は改善されました。古い限定されたファイルシステムから、New Technology File System(NTFS)と呼ばれるものに移行しました。 NTFSを使用すると、ファイル名の長さが255文字になり、ファイルパスの長さが最大32,767文字になる可能性があります。では、どのようにしてファイル名が長すぎるのでしょうか?

Windowsには、システム変数と呼ばれるものがあります。これらは、Windowsが機能するために依存する変数です。Windowsは、ビットやバイトをあちこちに移動している場合でも、変数の意味とその場所を常に把握しているためです。システム変数MAX_PATHは、ファイル名とファイルパスを260文字未満に制限するものです。

変数であれば、変更できると思います。いいえ、すべきではありません。セーターから糸を引っ張るようなものです。 1つのシステム変数が変更されるとすぐに、それらに依存する他のシステム変数とコンポーネントが解き始めます。

<!-
In_content_1 all:[300x250] / dfp:[640x360]
->

ではどのように修正しますか?

簡単な修正

幸運な場合は、エラーが発生し、問題の原因となっているファイルの名前を正確に把握してください。または、少なくともファイルの場所。次のようなファイル名を持っている可能性があります。

C:\User\guymc\Documents\My Resumesresumewithanamesolongthatitcausesproblemsandbecomespartofsomeguysarticleonthewebhowdoyoulikemenow.docx

この場合、攻撃者が誰であるかは明らかです。 Windowsエクスプローラー、またはWindows 10で呼び出されたファイルエクスプローラーでファイルを見つけ、クリックして、F2を押して名前を変更し、その愚かなファイル名をより合理的なものに変更します。問題が解決しました。

それほど簡単ではない修正

この問題を修正するのは必ずしもそれほど簡単ではありません。何らかの理由でファイルまたはディレクトリの名前を変更できない場合があります。

次の解決策はあなたのためのトリックを行います。難しくありません。

PowerShellを使用してファイルまたはディレクトリを移動、削除、またはコピーする

ファイルパスの文字数が260を超えるディレクトリを移動、削除、またはコピーしようとするとエラーが発生することがあります。

単語ディレクトリとフォルダは交換可能であることに注意してください。今後は「ディレクトリ」を使用します。次のPowerShellコマンドレットもファイルで使用できます。

ファイルパスは次のようになります。

C:\Users\guymc\Documents\This\Is\Exactly\The\Precise\Directory\Path\That\I\Need\To\Have\To\Keep\My\Files\Sorted\In\A\Manner\That\Makes\Sense\To\Me\So\Lets\Pretend\This\Is\An\Actual\Filepath\That\You\Might\Also\Have\On\Your\Windows\Computer\And\Not\Over\Think\It\Document.docx

そのファイルパスは280文字です。したがって、通常のコピーと貼り付けの方法では、ディレクトリを他の場所にコピーすることはできません。 宛先パスが長すぎますエラーが表示されます。

何らかの理由で、ファイルがネストされているディレクトリの名前を変更できないと仮定しましょう。何をしますか?

PowerShellを開きます。 PowerShellをまだ使用していない場合は、記事ホームユーザー向けのPowerShellの使用–初心者向けガイド をお楽しみください。ただし、記事を読まずに次の手順を実行できます。

PowerShellが開くと、ユーザーディレクトリのルートになります。 C:\ Users \ guymcがユーザーディレクトリであると想定します。

Thisという名前のディレクトリはドキュメントディレクトリ。 Documentsディレクトリに移動するには、DOSコマンドcd Documentsを使用します。

あなた 'プロンプトがC:\ Users \ guymc \ Documentsに変わります。それは良い。作業を簡単にするためにディレクトリの近くで作業しています。

Copy-Itemを使用してディレクトリをコピー

ディレクトリをコピーしますこれとそのディレクトリコンテンツをThatNewFolderに追加します。 PowerShellコマンドレットCopy-Itemをパラメーター-Destinationおよび-Recurseと共に使用してみましょう。

-宛先はPowerShellにコピー先を指示します。 -Recurseは、内部のすべてのアイテムを宛先にコピーするようにPowerShellに指示します。コピーすると、元の場所がそのまま残り、宛先にすべて新しいものが作成されます。

アイテムをコピー-Destination ThatNewFolder-再帰

Move-Itemを使用したディレクトリの移動

ディレクトリThisおよびその中のすべてのディレクトリとファイルをThatNewFolderに移動するとします。移動しても、元の場所はそのままになりません。

パラメーター-Pathおよび-DestinationでPowerShellコマンドレットMove-Itemを使用できます。 -Pathは移動するアイテムを定義し、-DestinationはPowerShellに移動先を指示します。

コマンドレットは、ThisをThatNewFolder内に配置します。また、Thisディレクトリ内にあるすべてのものを移動します。 Move-Itemはファイルまたはディレクトリの移動に使用でき、ファイルパスまたはファイル名の長さに関係なく機能します。

Move-Item -Path This -Destination ThatNewFolder

それが機能することを確認するには、cd ThatNewFolderThatNewFolderに入るコマンド。次に、dirコマンドを使用して、ThatNewFolderのディレクトリを一覧表示します。このディレクトリはそこにあります。

Remove-Itemを使用してディレクトリを削除

Thisディレクトリとその中のすべてを削除する場合は、Removeを使用します-Itemコマンドレット。

Remove-Itemコマンドレットには、内部にあるものを削除するのを困難にする安全性が組み込まれています。この例では、すべてを削除することがわかっているので、パラメーター-Recurseを使用して内部のすべてを削除し、-Forceを使用して削除します。内部のすべてのアイテムについて確信があるかどうかを尋ねます。

注意してください!この方法で削除されたものを回復することは非常に困難です。  誤って削除されたファイルを回復する方法 のメソッドを試すことができますが、あまり期待しないでください。

削除-アイテムThis -Recurse -Force

dirコマンドをもう一度使用して、削除されたことを確認できます。

Windows 10で長いファイルパスを使用できるようにする

長いファイルパスと長いファイル名を繰り返し使用することがわかっている場合は、Windowsを簡単に機能させることができます。 PowerShellを使用して毎日作業を行う意味はありません。

これを行うには2つの方法があります。 1つはWindows 10 Homeユーザー用で、もう1つはWindows 10 ProまたはEnterpriseユーザー用です。これらの方法はWindows 8.1以前で動作する可能性がありますが、それを保証することはできません。

Windows 10 Homeが長いファイルパスを受け入れるようにする

Windows 10 Homeが長いファイルパスを受け入れるようにするには、 レジストリエディタを開きます。以前にレジストリエディターで作業したことがない場合は、注意してください。ここで何かを誤って削除または変更すると、Windowsが完全に動作しなくなる可能性があります。

変更を行う前に、常にレジストリのバックアップを作成してください。  Windowsレジストリのバックアップと復元に関する究極のガイド でそれについて知っておく必要があるすべてを学びます。

レジストリエディターを開いてバックアップを作成したら、HKEY_LOCAL_MACHINE \の場所に移動します。 SYSTEM \ CurrentControlSet \ Control \ FileSystemでキーLongPathsEnabledを見つけます。

LongPathsEnabledをダブルクリックします。 [値のデータ:]フィールドで、数字1がそこにあることを確認します。 OKをクリックして変更をコミットします。

レジストリエディタを終了すると、クレイジーな長いファイルパスを操作できるようになります。

Windows 10 ProまたはEnterpriseで長いファイルパスを使用できるようにする

Windows 10 Proまたはエンタープライズでは長いファイルパスを使用するため、グループポリシーエディターを使用します。これは、コンピューターおよびユーザーレベルでのWindowsの動作方法に関するポリシーを設定できるツールです。

グループポリシーを使用して Internet Explorerオプションの無効化または有効化 、または ログオン画面にメッセージを追加する などの処理を行うことに関する記事がいくつかあります。

[スタート]メニューに移動し、[gpedit]と入力して、グループポリシーエディターを開きます。一番上の結果は、グループポリシーの編集です。それをダブルクリックします。

グループポリシーエディターが開いたら、[コンピューターの構成]>[管理用テンプレート]>[システム]>[ファイルシステム]に移動します。そこにポリシーが表示されますWin32ロングパスを有効にする

それをダブルクリックしてポリシー設定を編集します。 [無効]から[有効]に変更し、[OK]ボタンをクリックして変更を確定します。

ポリシーすぐに有効にならない場合があります。ただし、 グループポリシーを強制的に更新する は可能です。

That's It

長いファイル名とファイルパスを回避する方法は他にもありますが、しかし、ここで行ってきたことは、最も単純で最も効果的な方法です。

【実機】今更だけどWin95搭載PCを作る!98/2000とのマルチブートも?

関連記事:


17.07.2019