Windows 7は255文字のファイルパス制限を修正しましたか?


92

私が理解しているように、ファイルパスの255文字の制限はWindowsの制限です。これの理由は何ですか?その場合、これはWindows 7で解決されましたか?

継続的な統合の実践では、プロジェクト構造が深くネストされていることが多く、255文字を超えることができると非常に便利です。現在、私たちはこの人工的な天井にぶつからないようにプロジェクトを構造化することを余儀なくされています。


3
@DavidHeffernanしかし、その260は最後にnull文字が含まれ、最初に `C:\`が含まれるため、使用できるのは255文字だけです。
アーロンデュフォー2013

2
@DavidHeffernan私は間違っていました。Microsoftは、長さを256と見積もることがよくあります。これは、技術的に制限されている260ではなく、適切に減算したときに得られる256です。
アーロンデュフォー2013

5
この問題は私を激怒させます。それはまだ窓8.1にあります。ファイルが最初に作成されたとはいえ、ファイルを移動できないようです。255以上のファイルパス名でファイルを作成する方法を見つけた場合、誰かのWindowsマシンを完全に台無しにすることができます。
Automatico

Jeremy Kuhne氏によると、問題は解決中であり、すぐに解決する可能性があります。このビデオを見てください。youtube.com/watch?v=ZppqEMegCAA
J Edward Ellis

質問はWindows 7についてですが、とにかく、Windows 10には、一部のアプリケーションに対して長いパスをオンにするオプションがあります。詳細については、この答えをチェックアウト:stackoverflow.com/questions/27680647/...
quasoft

回答:


44

http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspxを参照してください

これは、Windows APIのUnicodeバージョンにはより高い制限があることと、それを有効にする方法を説明しています。


14
ただし、警告:長いパスではうまく機能しないコード(主にサードパーティのシステムユーティリティなど)がたくさんあります。長いパスを使い始めると、問題が発生する可能性があります。
ReinstateMonica Larry Osterman、

2
この記事は正しいですか?Windows 7でWindowsエクスプローラーとWindowsコマンドプロンプトの両方を使用して簡単なテストを行いましたが、260文字を超えるファイルパスを作成できません。マイクロソフトは、これらのアプリケーションを更新して、Windows APIのUnicodeバージョンを使用していませんか?
テンプラー

7
残念ながら、Windows 7 x64上のWindowsエクスプローラーは、このパス制限の影響を受けます。これにより、オペレーティングシステム全体がこの制限を超えていないように見えますが、実際には、より長いパスで動作するように更新されていないのはWindows Explorerだけです。最新のAPIを使用しているサードパーティのファイルマネージャがこれを回避できる可能性があります。最終的に、プログラムがパスの制限に達したように見えるかどうかは、そのプログラムがWindowsで最新のAPIを使用しているかどうかによって異なります。
user1445967 2013

2
「新しい」または「古い」APIの問題ではありません。長いパスのサポートは、明示的に要求した場合にのみ得られます。おそらく明らかな理由、つまり既存のサードパーティアプリケーションとの互換性のため、Explorerはサポートしません。
ハリージョンストン

9
-1-潜在的なソリューションへのリンクは常に歓迎されますが、リンクの前後にコンテキストを追加して、他のユーザーがそれが何であるか、なぜそこにあるのかがわかるようにしてください。ターゲットサイトにアクセスできない場合や、完全にオフラインになる場合に備えて、重要なリンクの最も関連性の高い部分を常に引用してください。meta.stackoverflow.com/tags/link-only-answers/info
アーロンホール

20

必要な場合は、substを使用してその制限を回避できます。



1
またはこの回答に基づいてWindowsに組み込まれているrobocopy、stackoverflow.com
questions / 29865863

5
方法を示し、関連ドキュメントへのリンクを提供する必要があります。-1
アーロンホール

3
私は賛成票を投じていましたが、例が役に立つことに同意します。 subst E: D:\TESTDATA\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1 これにより、500文字の深さのパスを回避できました。〜1の理由は、エクスプローラーがパスをフォーマットした方法にあります。
Adam Marcionek

1
同様の解決策は、シェル拡張またはmklinkを介してjunctionを使用することです。例:mklink /J C:\newdir C:\some\really\long\path\
Charles Grunwald

14

回避策は解決策ではないため、答えは「いいえ」です。

引き続き回避策を探していますが、可能な解決策は次のとおりです。http//support.code42.com/CrashPlan/Latest/Troubleshooting/Windows_File_Paths_Longer_Than_255_Characters


1
powershell、windowsエクスプローラーシェル、delなどのcmdユーティリティを含むウィンドウのコア要素は、250文字を超えるパスを処理できず、回避策はありません。2016年の時点で、Microsoftのコアテクノロジーが長いパスを処理しないという事実を修正していません。マイクロソフトが機材を整えるまで、私たちにできることはほとんどありません。
ウォーレンP

4

@ Cort3z:問題が解決しない場合は、この修正プログラム:https ://support.microsoft.com/en-us/kb/2891362で 解決できます(win7 sp1から8.1へ)。


これは素晴らしいソリューションです。使用後に何か問題がありましたか?
ガブリエルフェア

1

Windows 10バージョン1607から、レジストリキーを設定することで制限が削除されました

https://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx?f=255&MSPPError=-2147217396#maxpath


2
しかしWindows 7ではありませんか?
gumuruh 2017年

実際にこれに反対票を投じるのは合理的ではないように思われます。質問に答えることはできませんが、同様の質問を持つ多くの人にとっておそらく役立つでしょう。
mwfearnley 2018

ただし、Win10をカバーする他の質問があります
mjs
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.