Java は独自の追加の制限を課していますか。Windows (Vista まで) では、名前を含めることはできません
\ / < > ? * :
名前 (正規表現) を検証する方法を知っています。
ユーザーが入力したファイル名を検証する必要があります。
私のアプリケーションは他のプラットフォームで実行する必要はありませんが、もちろん、プラットフォームに依存しないことを好みます!
Java は独自の追加の制限を課していますか。Windows (Vista まで) では、名前を含めることはできません
\ / < > ? * :
名前 (正規表現) を検証する方法を知っています。
ユーザーが入力したファイル名を検証する必要があります。
私のアプリケーションは他のプラットフォームで実行する必要はありませんが、もちろん、プラットフォームに依存しないことを好みます!
いいえ、Java では文字列リテラルで許可されていないが、ファイル システムでは許可されている任意の文字をエスケープできます。
また、Windows アプリを Mac または Unix に移植しようとする場合は、次を使用するのが最適です。
File.separator
各プラットフォームで使用する正しいファイル区切りを決定するため。
を作成すると、入力された引数は、クラスnew File
のプラットフォーム固有の実装によって正規化されます。java.io.FileSystem
私が知っている Java 固有の制限はありません。
はい、常に使用しますFile.separator
。
Java はString
Unicode で表現できるものをすべてサポートしており (途方もなく長い最大Integer.MAX_VALUE
長String
.
もちろん、これは、基盤となるオペレーティング システムでサポートされていない名前を使用してファイルを参照しようとする可能性があることを意味します。これを行うと、ファイル参照を使用しようとすると、何らかの結果が得られますIOException
...