WindowsおよびUnixのファイル拡張子の規則は何ですか?

filenames parsing
私は現在File

Basename fileparseを使ってファイルのディレクトリ、ベースファイル名を区別しています。そしてそれはこのような拡張子を使った拡張子です:

my($ myfile_name、$ mydirectory、$ file_extension)= fileparse($$ rhash_params {'storage_full_path_location'}、 '\ .. {1,4}');

しかし、実際には関数に接尾辞の配列を与えることができるバリエーションがあることを確認してください。配列はすべての既知のファイル拡張子を含みます。

だから私は私が処理するためにいくつかの奇妙なファイル名を持っていることを見たのでこれをする安全な方法を見つけようとしています。 file.0f1.htmなど

質問:

  1. WindowsおよびUnixシステムで一般的に使用されている拡張子のリストはありますか? しかし私の場合は、主にWindows用です。

  2. そして、Windows内のすべてのファイル名の拡張子が3文字の文字で終わっていると仮定しても安全ですか?

そして、これを行うためのさらに良い方法があるならば、共有してください。

ありがとう。

更新日:

だから明らかに私はそれらの他の拡張子について忘れて酔っている必要があります。 :)このようにして現在の正規表現を更新し、1〜4文字を許可します。

この場合、正規表現の行を正しく一致させるにはどうすればいいですか? それとも、グーグルからこれらの一般的に使用されるすべての拡張子を探して、代わりに関数に渡すためにそれらを配列に入れることがさらに良い考えでしょうか? 私のユーザーは通常学生か教師です。

  1  0


ベストアンサー

_
1. WindowsおよびUnixシステムで一般的に使用されている拡張子のリストはありますか? しかし私の場合は、主にWindows用です。
_

はい、インターネット経由でロードされます。http://www.google.com/search?q=commonファイル拡張子

_
2. そして、Windows内のすべてのファイル名の拡張子が3文字の文字で終わっていると仮定しても安全ですか?
_

いいえ、Windowsでは .c ''、。java ”などを使用することは完全に可能です。

3


あなたのコードにはいくつかのフォールトの仮定があります。

  • ファイルは拡張子を持つ必要はありません。 たとえば、Unix / Linux /上のほとんどのバイナリ実行可能ファイル まったく拡張子を付けないでください。 それらは単に “bash”、 “wget”、 “sed”、 “Xorg”などと呼ばれます。

  • 拡張子は、@ Alnitakがすでに言っているように、3文字の長さである必要はありません。 “.c”、 “。java”、 “。mpeg”、 “。jpeg”、 “。html”は、すべて完全に細かい広めの拡張子です。

  • 最後の「。」で切るおそらくより安全ですが、拡張子のないファイルや “.tar.gz”、 “tar.bz2″のような複数の(またはマルチパートの)拡張子を持つファイルでは依然として失敗する可能性があります。 。-世界

1


タイトルとURLをコピーしました