興味深い事例がありました。
私のソフトウェアは、パスが MAX_PATH よりも長いために発生した障害を報告しました。
パスは、マイ ドキュメント内の単純な古いドキュメントでした。たとえば、次のようになります。
C:\Documents and Settings\Bill\Some Stupid FOlder Name\A really ridiculously long file thats really very very very..........very long.pdf
全長 269 文字 (MAX_PATH==260)。
ユーザーは外付けハード ドライブなどを使用していませんでした。これは、Windows 管理ドライブ上のファイルでした。
だから私の質問はこれです。気にする必要がありますか?
長いパスを処理できると言っているのではなく、処理すべきかどうかを尋ねているのです。はい、一部の Win32 API での "\?\" Unicode ハックを認識していますが、このハックにはリスクがないわけではないようです ( API がパスを解析する方法の動作を変更しています)。また、すべての API でサポートされているわけではありません。
とにかく、私の立場/主張を述べさせてください:
- まずおそらく、ユーザーがこの制限を破ることができた唯一の方法は、彼女が使用したアプリが特別な Unicode ハックを使用している場合です。これは PDF ファイルなので、彼女が使用した PDF ツールがこのハックを使用している可能性があります。
- これを(ユニコードハックを使用して)再現しようとし、実験しました。私が見つけたのは、ファイルはエクスプローラーに表示されますが、何もできないということです。開けません、「プロパティ」を選択できません(Windows 7)。他の一般的なアプリ (IE、Firefox、メモ帳など) ではファイルを開くことができません。エクスプローラーでは、長すぎるファイル/ディレクトリを作成することもできません。単に拒否されます。コマンド ライン ツール cmd.exe についても同様です。
したがって、基本的には、次のように考えることができます。ルージュ ツールにより、ユーザーは、多くの Windows (エクスプローラーなど) からアクセスできないファイルを作成できます。私はこれに対処する必要はないという見方をすることができました。
(余談ですが、これは短い最大パス長の承認投票ではありません。260 文字は冗談だと思います。Windows シェルと一部の API が 260 を超える文字を処理できない場合、なぜ?)。
それで、これは公正な見方ですか?「私の問題ではない」と言うべきですか?
更新:同じ問題を抱えている別のユーザーがいます。今回はmp3ファイルです。何か不足していますか?これらのユーザーは、MAX_PATH ルールに違反するファイルをどのように作成できますか?