問題タブ [name-length]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
winapi - Windows カーネルで可能なファイル名の最大長
Windows カーネルで許可されている最長の名前の長さはどれくらいですか?
例: カーネルは構造体を使用してすべてのオブジェクト パスを保持することを知っていますUNICODE_STRING
。ワイド文字列のバイト長は 内に格納されるUSHORT
ため、パスの最大長は 2^15 - 1 文字です。ファイル名 (パスではなく) に同様の厳しい制限はありますか? (NTFS または FAT32 が特定の制限を課すかどうかは気にしません。追加のファイル システムまたはシェルの制限がないことを前提として、カーネルで理論的に許可されている可能な限り長い名前を探しています。)
(編集:なぜこれが重要なのか疑問に思っている人は、通常、ディレクトリのトラバースはFindFirstFile
/FindNextFile
ファイルごとに1回の呼び出しによって達成されると考えてください。 という名前の関数が与えられた場合、これは基礎となるシステムコールであり、呼び出しごとに複数のファイル名NtQueryDirectoryFile
を返します。実際には、このパスの最大長制限を利用して、スタックのみをバッファーとして使用する非常に高速なディレクトリ トラバーサーを作成することが可能です. 今、私はその概念を拡張しようとしています.ファイル名。)
asp.net - Internet Explorer:FileUploadコントロールは、長いファイル名のファイルを認識しません
この質問を読んだ後、それはどういうわけか非現実的であると思うかもしれませんが、以下の状況は私たちの本番アプリケーションの1つにあります。
ユーザーの1人が、名前が長すぎるファイルをアップロードしようとするとエラーが発生することを報告しました。ファイル名をファイル拡張子を含めて255文字を超えないように制限することで、この問題を修正する必要があります。しかし、InternetExplorerにのみ存在する別の奇妙な動作に直面しました。
ユーザーが拡張子を含む長さが255文字のファイルをアップロードしようとすると、FileUploadはファイルを選択せず(つまり、ファイルを認識しません)、ファイル名を示すテキストボックスは空白のままになります。これはIE8、IE9、IE10で有効です。これは、ASP.NETまたはSharePointソリューションで有効です。
同じファイルをGMailにアップロードしようとしましたが、Internet Explorerを除くすべてのブラウザでアップロードできました。つまり、IEに関連するものです。
助言がありますか?修正はありますか?