実際には、バックスペースや改行文字などの凶悪なものを含め、ファイル名に使用できる文字はもっとたくさんあります。実際、基盤となるファイル システムに依存する場合があります。実際のパスセパレーター以外のすべてを許可するルールをどこかで漠然と覚えています。
何かが有効かどうかを判断する際に常に考慮していることの 1 つは、それを使用することです。たとえば、(複雑な) 正規表現を使用して電子メール アドレスの形式を検証できますが、それが完全に有効であることを確認する唯一の方法は、ハイパーリンク メールを送信して受信を確認することです。
特定のケースで、その名前でファイルを作成したい場合は、実際にファイルを作成することが許可されているディレクトリに一時ファイルを作成しようとすることができます。ファイルが正常に作成された場合は、有効な名前です :-) もちろん、ファイルを作成している場合は、実際のファイルを作成したいだけかもしれません。既存のファイルを開く場合は、正規表現を忘れて、ファイルを開こうとしてください。正規表現の複雑さは、ファイルが存在するか、読み取り可能かどうかを教えてくれません。
ただし、率直に言って、使用できる文字に独自の制限を設けることを検討します。過去に、CTRL 文字を含むファイル名を作成するほど愚かな人や-rf
、rm
コマンドに問題があると呼ばれる人を呪いました。 (それを回避する方法がわかるまで)。