PhotoshopやIllustratorなどで作成したドキュメントを保存する際に、分かりやすいように名前をつけるのが一般的です。この分かりやすいように、というのは「制作者にとって」「他人(第三者)にとって」「人間にとって」ということです。
プログラムが複雑になる原因のひとつとして、「人間にとって分かりやすいファイル名」をつけてしまうことがあげられます。例えば、以下のファイル名は人間にとっては見れば分かるものです。
系統図(改良版)
ヘッダー画像
オフィスDGCR写真
しかし、これらのファイルをプログラムで処理しようとすると大変です。特にAdobe CS系統のアプリケーションをMacOS X版で動かしている場合には、日本語ファイル名が正しく表示できません(全角括弧や濁点など、一部の文字が正しく処理されない。InDesign CS4は改善され、かなり正常に処理されるようにはなりました)。
日本語でファイル名を付けるのは珍しいことではありませんが、プログラムにとっては処理が正しく行なわれなかったり、プログラムが複雑になってしまいます。
プログラムが複雑になる原因のひとつとして、「人間にとって分かりやすいファイル名」をつけてしまうことがあげられます。例えば、以下のファイル名は人間にとっては見れば分かるものです。
系統図(改良版)
ヘッダー画像
オフィスDGCR写真
しかし、これらのファイルをプログラムで処理しようとすると大変です。特にAdobe CS系統のアプリケーションをMacOS X版で動かしている場合には、日本語ファイル名が正しく表示できません(全角括弧や濁点など、一部の文字が正しく処理されない。InDesign CS4は改善され、かなり正常に処理されるようにはなりました)。
日本語でファイル名を付けるのは珍しいことではありませんが、プログラムにとっては処理が正しく行なわれなかったり、プログラムが複雑になってしまいます。
プログラムで処理しやすくするアイデアとして「拡張子」があります。拡張子は該当するファイルが何の種類なのかを示すものです。例えば、画像ファイルであれば.jpgや.pngなどがあります。Photoshopの画像データであれば.psd、Illustratorであれば.eps、PDFであれば.pdfになります。
上記のデータファイルがすべてJPEG画像であれば、以下のように指定することになります。
系統図(改良版).jpg
ヘッダー画像.jpg
オフィスDGCR写真.jpg
MacOS Xでは、拡張子がなくても判別するための手段が用意されていますが、他の多くのOSでは拡張子が必要です。この拡張子は人間には分かりにくい面もありますが、プログラムにとっては便利なものです。例えば、JPEG画像ファイルだけを抽出したい場合、
fileList = folderObj.getFiles("*.jpg");
のように*.jpgと指定するだけですみます。もし、拡張子がない場合にはプログラムでは画像がJPEG形式かどうかを調べなければなりません。そんな事をしていたら、プログラムが複雑でプログラムの制作コストも膨らんでしまいます。
複雑にしないという点から見れば、プログラムでファイルを処理する場合は、ファイル名を英数字の組み合わせにするのがベストです。例えば、上記ファイル名を以下のようにします。
fig_0.jpg
fig_1.jpg
fig_2.jpg
ただし、このようにしてしまうと人間にとって分かりにくいものになってしまいます。英語またはローマ字と数字の組み合わせなど、少しでも分かりやすいものにするとよいでしょう。ファイル名に数字を付ける場合、以下のように先頭に00を付加する場合があります。
fig_000.jpg
fig_001.jpg
fig_002.jpg
このようにするとファイル一覧を表示、取得する場合に順番どおりになるというメリットがあります。ただし、プログラムで処理するという観点からすると、好ましいものではありません。以下のように、単純に数字になっているものの方がプログラムが簡単に作成できます。
fig_0.jpg
fig_1.jpg
fig_2.jpg
ファイル名の付け方によって、プログラムの負担が大きく変わりますが、逆にプログラム(言語特性)に合わせてファイル名を付ける、というのもいいでしょう。
それと、もうひとつフォルダ名について補足しておきます。MacOS X版のPhotoshop CS3、InDesign CS3、Illustrator CS3、AfterEffects CS3などは、フォルダ名に全角の( などが含まれると、フォルダ内にあるファイルの一覧を取得できません。どのような文字が含まれると動作しないのかというと、以下のURLにある文字がフォルダ名に含まれると駄目なようです。
< http://www.unicode.org/charts/PDF/UFF00.pdf
>
CS2では発生しないので、CS3での不具合なのでしょう。他にも、サーバーのボリューム名が日本語だと駄目だとか諸々ありますが、安全運用したいのであれば、日本語フォルダ名やファイル名は避けるのがよいでしょう。
【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/
>
先頃噴火した浅間山の、当日の午後の映像を撮影してきました。フリー素材で使えるようにしてあります。滅多に噴火しないので、なかなか撮影は難しいところです。
< http://www.openspc2.org/HDTV/footage/HD/60i/
>
- 改訂第4版 JavaScript ポケットリファレンス
- 古籏 一浩
- 技術評論社 2006-10-18
- おすすめ平均
- JavaScriptを使ったプロジェクトのお供に是非
- JavaScript仮免者以上の方へ
- バランスの良いバイブル
- 中級者向けです。
- 組版時間を半減する! InDesign自動処理実例集
- (株)シータス
- 技術評論社 2008-11-25
- おすすめ平均
- プログラミング経験のない方も気軽に挑戦してほしいです
by G-Tools , 2009/02/09