システム開発・Webサイト構築 プラスラス

2006/12/22 金曜日

【PROGRAM】意外と深いWindowsのパス表記法

このエントリーを含むはてなブックマーク Yahoo!ブックマークに登録 Google ブックマーク del.icio.us

Windowsで使用可能なパスの表記は単純そうで奥が深いものです。

複雑なために、特にWebアプリを作る場合なんかは安易な書き方がセキュリティホールになりかねないません。注意しましょう。

以下に見落としがちなものを挙げます。

1) パス指定の際、区切り文字には、”¥”だけでなく、”/”も使用できる。両方が混在しても良い。
C:¥test.txt でも C:/test.txt でも良い。

2) パスの区切り文字である “¥”や、”/”は複数回続けて書いても良い。
C:¥/¥¥test.txtは、C:¥test.txt と同じに扱われる。

3) 同一ディレクトリを示す “.” (ピリオド1個)や、一階層上のディレクトリを示す”..”(ピリオド2個)を、途中に使うこともできる。
C:¥.¥test.txt など。

4) ロングネームとショートネームが存在する。

5) パスの文字列自体からは、示されているのがフォルダなのかファイルなのかは区別がつかない。

フォルダ名にもピリオドを使えるし、また、拡張子がないファイルも作成可能なので、文字列だけからフォルダなのかファイルなのか判断するのは不味い。

C:¥test.txt がフォルダである可能性もある。こんな名前でフォルダを作ってしまう人が悪い気もするけれど、プログラムでファイルの存在確認だけしてもファイルとしては存在しないことになってしまう。ファイルとして削除もできない。

なお、パスの先頭に “¥¥?¥” を付けると、1~3の表記法は使用できなくなるので、ユーザーに変な書き方をされたくないときなどに使えます。

Filed under: Programming,Programming全般 — Nakai @ 22:28:42

コメントはまだありません »

コメントはまだありません。

この投稿へのコメントの RSS フィード。 TrackBack URL

コメントする

HTML convert time: 0.727 sec. Powered by WordPress