長いパス名のWindowsエクスプローラーの代替


24

更新:

  1. Windowsエクスプローラーだけでなく、他のソフトウェアもパス名が長すぎることに悩まされていることがわかりました。たとえば、FirefoxでWebページをディレクトリに保存するとき、名前またはパス名が長すぎる場合は実行できません。FirefoxはWindowsエクスプローラーにも依存していますか?どうすればその問題も解決できますか?

  2. 2つの応答で推奨されるソフトウェアを試しました。それらのどれも長いパスにアクセスできません。ディレクトリを参照するプログラムに関係なく、ロングパスの問題はWindows OSに固有のものですか?はいの場合、それを回避する方法がないことを意味しますか?

オリジナル:ラップトップにWindows 7とUbuntu 10.10の2つのOSがインストールされています。パーティションを共有します。

Ubuntuでは、Nautilusを使用して、共有パーティションのパス階層の非常に深い場所にディレクトリを作成できます。ただし、Windowsに切り替えると、Windowsエクスプローラーは、深すぎるディレクトリ、つまりパス名が長すぎるディレクトリにアクセスできません。

また、Windowsエクスプローラーは、ディレクトリ名とファイル名に特殊文字を使用してUbuntuで作成されたファイルとディレクトリにアクセスできないようです。

Windowsの問題を何が解決できるのだろうか?たとえば、Windowsエクスプローラーを置き換える他の代替ソフトウェアはありますか?


1
共有パーティション(FAT32、NTFS)に使用したファイルシステムは何ですか?
ジェームズP

1
@James:NTFS ...
ティム・

なぜこの長さのパスまたは深さが必要なのでしょうか?259の制限に達する原因となったものをすべて解決することは、Windowsでそれを回避するよりも簡単です。
cjb110

回答:


30

NTFSでは約32,000文字のパスが許可されていますが、Win32 API259文字のパス長制限があります

Windows API([リンクされたドキュメント]で説明されているいくつかの例外を除く)では、パスの最大長はでMAX_PATH、これは260文字として定義されています。

(さらにNULL、パスに終了文字が追加され、259の使用可能な文字が与えられます。)

Explorer(および他のほとんどすべてのWindowsアプリ)はファイルシステムへのアクセスにWin32 APIを使用しているため、可能な場合でもこの制限を回避することは実用的ではありません。

Windows APIには、最大合計パス長が32,767文字の拡張長パスを許可するUnicodeバージョンもある多くの関数があります。このタイプのパスは、バックスラッシュで区切られたコンポーネントで構成され、それぞれlpMaximumComponentLengthGetVolumeInformation関数のパラメーターで返される値(この値は通常255文字)までです。拡張長パスを指定するには、「\\?\」プレフィックスを使用します。たとえば、「\\?\ D:\ very long path」。

残念ながら、\\?\D:\very long pathExplorerウィンドウに入力することはできません。アプリケーションは、これらのAPIを利用して非常に長いパス名を処理するように設計する必要があります。

Windowsで拡張長パスにアクセスする1つの方法は、Windows用の* nixエミュレーションレイヤーであるCygwinをインストールすることです。私のテストでは、Cygwinはによって制限されているようには見えませんMAX_PATH。bashとviには、2,000文字のパスに関する問題はありませんでした。

bashを使用して拡張パスを参照することはできますが、通常のWindowsアプリケーションではこれらのパスのファイルを開くことができない可能性があることに注意してください。たとえばnotepad、作業ディレクトリが拡張パスであるときに入力すると、

エラー:現在の作業ディレクトリには、Win32作業ディレクトリで許可されているよりも長いパスがあります。ここからネイティブWindowsアプリケーションを起動できません。

また、試しnotepad "\\?\D:\very long path\file.txt"てもうまくいきません。起動しますが、「ファイルが見つかりません...」と表示されます。Notepad++で同じことをしようとするとクラッシュします。(おそらくバッファオーバーフロー。)

拡張長パスの奥深くに埋め込まれた特定のファイルにアクセスする他のオプションは、NTFS ジャンクションポイントを作成してパス自体短くすることです。管理者特権のコマンドプロンプトから:

D:\> mklink /J jct "\\?\D:\very\long\path"

D:\very\long\path\from のコンテンツにアクセスできるようになりましたD:\jct\。Explorerや他のアプリに関する限り、パスは単なるD:\jct\(または何でも)であるため、パスの長さの問題は発生しません。NTFSドライバーは、パス(「再解析ポイント」)の透過的なリダイレクトを処理します。

このアプローチの欠点は、アクセスしたいファイルの近くにジャンクションを作成しなければならないことです。まだディレクトリ構造全体を閲覧することはできません。

特殊文字(" * : < > ? \ |)に関しては、それは単に禁止です。これらの文字はWindows内で特別な意味を持つため、パス内で使用することはできません。(Cygwinでは、特殊文字を使用してファイルを作成できますが、特殊なUnicode文字で文字置き換えることにより、読み取り時に元に戻します。これらのCygwinで作成されたファイルをLinuxまたはエクスプローラーで表示すると、正しく表示されません。 Unicode文字は置換されません。)


それはすべて、非常に長いパスを必要とする何をしているのですか?おそらく、あなたがやっていることを再評価し、長い道のりを避けることによって、あなたの人生を楽にすることができるでしょう。チャンスはあなたが、ある長いとにかくというパスを必要としません


この答えは「あなたが探していることをするソフトウェアは存在しない」と言っているように見えますが、明示的ではありません
アーロン

5

テキストモードアプリケーションが好きな場合、FARマネージャーはWindowsエクスプローラーよりも深いディレクトリ構造をサポートできることがわかっているので、興味があるかもしれません(ただし、基礎となるWindows OS自体によっていくつかの制限があります)。

これはネイティブの32ビット/ 64ビットWindowsアプリケーションであり、Norton Commander(DOSがPCのオペレーティングシステムの最高の支配者だった時代から)のように、ディレクトリ(別名「フォルダ」)とファイル管理を専門としています。

Windows Explorerの代替として使用されているという報告もありますが、アプリケーションとして使用するというコンテキストで非常に満足しているため、これを試していません。 以下に含まれるスクリーンショットは、右側に「ディレクトリツリー」機能を備えています。これは、F9(メニューバー)、次に「R」(右パネルメニュー)、次に「T」(ツリーパネルモード) 、これは特に興味があるかもしれません...

  FAR Manager(無料でオープンソース)
  http://www.farmanager.com/

ここに画像の説明を入力してください


ありがとう!(1)以前にFARを試しました。2つの質問があります。濃い青が目の疲れを感じるので、変更できますか?また、認識されないか、いくつかの異なるアプリケーションで開くことができるファイルを開くアプリケーションを選択する方法を疑問に思います。(2)Windowsエクスプローラーだけでなく、他のソフトウェアもパス名が長すぎることに悩まされていることがわかりました。たとえば、FirefoxでWebページをディレクトリに保存したいのですが、名前またはパス名が長すぎるとディレクトリを開くことができません。FirefoxはWindowsエクスプローラーにも依存していますか?どうすればその問題も解決できますか?
ティム

はい、色を変更できます:F9(メニューバー)、 "O"(オプションメニュー)、 "L"(色)。
ランドルフリチャードソン

「...ファイルを開くアプリケーションを選択する方法...」についての2番目の質問を完全には理解していませんが、ファイルでShift-Enterを押すと、Windowsのファイル関連付けに依存して開きます(代わりに組み込み機能またはそれを処理するFARマネージャープラグインを見つけようとする)。
ランドルフリチャードソン

最後の質問では、FARマネージャーが少し長いパスを処理できる場合があることに気付きました。これがなぜかはわかりませんが、発生している問題はWindows OS自体の制限であると思われます。
ランドルフリチャードソン

1
Shiftキーを押しながらEnterキーを押すと、Windowsがそれを開こうとします。認識されないため、アプリケーションを選択するための通常のプロンプトが表示されます。
ランドルフリチャードソン

4

いくつかの選択肢がありますが、ディレクトリの深さを確認しませんでした。

Explorer ++、オープンソース、ポータブルを試しました

Explorer ++スクリーンショット

そして、現在もオープンソースのCubic Explorerを使用しています。

Cubicexplorerスクリーンショット


ありがとう!Windows Explorerだけでなく、他のソフトウェアもパス名が長すぎることに悩まされていることがわかりました。たとえば、FirefoxでWebページをディレクトリに保存したいのですが、名前またはパス名が長すぎるとディレクトリを開くことができません。。FirefoxはWindowsエクスプローラーにも依存していますか?どうすればその問題も解決できますか?
ティム

1
@Tim:Windows自体の設計によって課せられる制限に直面している可能性があります。また、DOSプロンプトには非常に長いパスの問題があることにも気づきましたが、これらの "い「8.3スタイル」のパス名(たとえば、「C:/ PROGRA〜2 / SPYBOT〜1 /」)を使用することで少し深くなります。 。ただし、優れた機能の1つは、これらの短い8.3パス名と長いパス名を混在させると、ほとんどのアプリケーションでうまく機能するように見えることです。
ランドルフリチャードソン

@ランドルフ:ありがとう!あなたとJuheleの投稿で推奨されているソフトウェアを試しました。実行されたFAR、それらのどれもが長いパスにアクセスできませんが、FARはそのようなディレクトリを開くことができますが、その下のファイルを開くことはできません。ディレクトリを参照するプログラムに関係なく、ロングパスの問題はWindows OSに固有のものですか?はいの場合、それを回避する方法がないことを意味しますか?
ティム

@Tim:Windows自体の制限の問題を確認したと思います。FAR Manageを使用してファイルを表示できます(ファイルを強調表示した後にF3キーを押します)。Enter(Shiftなし)の使用はどうですか?(表示できる場合は、Windowsが使用できる別の場所にコピーすることもできます。これは面倒ですが、少なくともファイルにアクセスできるようにします。)
ランドルフリチャードソン

4
Explorer ++とCubic Explorerを試しました。しかし、両方とも長いパス名をサポートしていないようです。
xaedes

1

7-Zipファイルマネージャーを試しましたが、長いパスでも問題なく動作するようです。


ブリリアント!私が自分のコンピューターに持っていて、試そうとは思わなかった隠された宝石。ボーナス:ネットワーク共有に長い道のりがありました-7 Zipファイルマネージャーのパフォーマンスは、Windowsエクスプローラーのパフォーマンスが遅いのに
比べて非常に速いことに気付きました-Omaer

0

Total Commanderを試しましたか?シェアウェアです。長いパス名を扱うようで、一般的に非常に便利なファイルマネージャです。

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