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

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

簡単な修正の種類に遭遇することを願っていますが、簡単ではなく、確実に修正できるように準備します。

Windowsでファイル名の長さが問題になるのはなぜですか?(Why Is Filename Length Even An Issue In Windows?)

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

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

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

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

では、どうすれば修正できますか?

簡単な修正(The Easy Fix)

運が良ければ、エラーが発生し、問題の原因となっているファイルの名前が正確にわかります。または、少なくともファイルの場所。たぶんあなたは次のようなファイル名を持っています:

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

この場合、犯罪者が誰であるかは明らかです。Windowsエクスプローラー(Windows Explorer)またはWindows10で呼び出されるファイルエクスプローラー(File Explorer)でファイルを見つけ、1回クリックし、F2キー(F2)を押して名前を変更し、そのばかげたファイル名をより適切なものに変更します。問題は(Problem)解決しました。

簡単ではない修正(The Less Easy Fixes)

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

次の解決策はあなたのためにトリックを行います。彼らは難しいことではありません。

(Move)PowerShellを使用してファイルまたはディレクトリを(Or Copy Files Or Directories Using PowerShell)移動削除(Delete)、またはコピーする

ファイルパスの文字数が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文字です。したがって、通常のコピーアンドペースト方法では、ディレクトリをそこから別の場所にコピーすることはできません。Destination PathTooLongエラーが発生します。

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

PowerShell(Open PowerShell)を開きます。PowerShellをまだ使用していない場合は、「ホームユーザー向けのPowerShellの使用–初心者向けガイド」の(Using PowerShell for Home Users – A Beginner’s Guide)記事をお楽しみください。ただし、記事を読まなくても次の手順を実行できます。

PowerShellが開くと、ユーザーディレクトリのルートに移動します。C:\Users\guymc がユーザーディレクトリであると仮定して、これに従ってください。(Follow)

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

C:\Users\guymc\Documentsへのプロンプトの変更が表示されます。それは良い。私たちは物事を簡単にするディレクトリに近づいています。

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

ディレクトリThisとその内容をThatNewFolderにコピーします。PowerShellコマンドレットCopy-Itemをパラメーター-Destinationおよび-Recurseとともに使用してみましょう。

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

Copy-Item This -Destination ThatNewFolder -Recurse

Move-Itemを使用してディレクトリを移動する

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

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

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

Move-Item -Path This -Destination ThatNewFolder

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

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

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

Remove-Itemコマンドレットには安全機能が組み込まれているため、ディレクトリ内にあるものを含むディレクトリを削除することは困難です。この例では、すべてを削除する必要があることがわかっているので、パラメーター-Recurseを使用して内部のすべてを削除し、-Forceを使用して、内部のすべてのアイテムが確実かどうかを確認せずに削除します。

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

Remove-Item This -Recurse -Force

dirコマンドを再度使用して、それがなくなったことを確認できます。

Windows10に長いファイルパスを受け入れさせる(Make Windows 10 Accept Long File Paths)

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

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

Windows10Home(Make)で長いファイルパスを受け入れるようにする(Home Accept Long File Paths)

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

変更を加える前に、必ずレジストリのバックアップを作成してください。Windowsレジストリのバックアップと復元に関する究極のガイド( Ultimate Guide to Backing Up and Restoring the Windows Registry)で、そのことについて知っておく必要のあるすべてのことを学びましょう。

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

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

Registry Editorを終了すると、非常に長いファイルパスを処理できるようになります。

Windows10Pro(Make)またはEnterpriseに長いファイルパスを受け入れ(Pro Or Enterprise Accept Long File Paths)させる

Windows 10 ProまたはEnterpriseで長いファイルパスを使用できるようにするには、グループポリシーエディターを使用します(Group Policy Editor)。これは、Windowsがコンピューターおよびユーザーレベルでどのように動作するかに関するポリシーを設定できるツールです。

グループポリシーを使用してInternetExplorerオプションを無効または有効にしたり( disabling or enabling Internet Explorer options)、ログオン画面にメッセージを追加し( adding a message to the logon screen)たりする方法について、いくつかの記事があります。

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

グループポリシーエディター(Group Policy Editor)が開いたら、Computer Configuration > Administrative Templates > System > Filesystemに移動します。そこに、Win32ロングパスを有効(Enable Win32 long paths)にするポリシーが表示されます。

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

ポリシーはすぐには有効にならない場合があります。ただし、グループポリシーを強制的に更新する( force the group policy to update)ことはできます。

それでおしまい(That’s It)

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



About the author

私は Firefox と Google Docs の経験を持つ Web 開発者です。私はフロリダ大学で経営学の学位を取得しています。私のスキルには、Web サイト開発、コンテンツ管理システム (CMS)、データ分析、およびユーザー インターフェイス設計が含まれます。私は経験豊富なコンサルタントであり、チームが効果的な Web サイトとアプリケーションを構築するのを支援できます。



Related posts