(57)【要約】【課題】コード体系ごとに変換テーブルを有する必要のないの新しいファイル読出／書込の枠組みを提供する。【解決手段】ファイル管理モジュールは、１バイトコードそれぞれに対していずれかのユニコードを重複なく割り当てたテーブル、１文字分のユニコードを入力とし、ＡＳＣＩＩ文字に割り当てられる００〜７Ｆの範囲の１バイトコードを出力するハッシュ関数を記憶する。ファイル管理モジュールは、ファイル情報を提供する場合は、記憶媒体内のファイルのファイル名のローカルコード列を前記テーブルによりユニコード列に変換して提供する。ファイルを読み出す場合は、指示されたユニコード列を前記テーブルによりローカルコード列に変換して記憶媒体内のファイルを検索する。ファイルを書き込む場合は、指示されたユニコード列を前記ハッシュ関数によりローカルコード列に変換して記憶媒体に書き込む。【選択図】図２
2009140063.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末からのファイル読み出し要求に応じて、ファイルシステムを介して記憶媒体からファイルを読み出してクライアント端末に送信し、クライアント端末からのファイル書き込み要求に応じて、ファイルシステムを介して記憶媒体にファイルを書き込むファイル管理モジュールであって、
１バイトコード００〜ＦＦそれぞれに対していずれかのユニコードを重複なく割り当てた１バイトコード変換テーブルを記憶する手段と、
前記記憶媒体に格納される各ファイルについて、ファイル名のローカルコード列を取得し、前記取得したローカルコード列を１バイトコード列と見なした場合の各１バイトコードに前記１バイトコード変換テーブルを適用して、前記取得したローカルコード列をユニコード列に変換し、前記変換したユニコード列により該ファイルの変換後ファイル名を設定するファイル名変換手段と、
前記クライアント端末から前記記憶媒体に格納される各ファイルのファイル情報の要求を受け付けた場合、前記記憶媒体に格納される各ファイルについて、前記ファイル名変換手段によって設定された変換後ファイル名を含むファイル情報を、前記クライアント端末に送信する手段と、
前記クライアント端末から前記変換後ファイル名を指定したファイル読み出し要求を受け付けた場合、前記指定された変換後ファイル名のユニコード列の各ユニコードに前記１バイトコード変換テーブルを適用して、前記変換後ファイル名のユニコード列をローカルコード列に変換し、前記変換したローカルコード列を前記記憶媒体に格納される各ファイルのファイル名のローカルコード列と比較し、ローカルコード列が一致したファイルを前記ファイルシステムを介して前記記憶媒体から読み出して前記クライアント端末に送信する手段と、
１文字分のユニコードを入力とし、ＡＳＣＩＩ文字に割り当てられる００〜７Ｆの範囲の１バイトコードを出力するユニコードハッシュ関数を記憶する手段と、
前記クライアント端末からユニコードで記述されたファイル名Ｙを指定したファイルＸの書き込み要求を受け付けた場合、前記ファイル名Ｙに非ＡＳＣＩＩ文字が含まれているか否かを判定し、含まれない場合は、前記ファイル名Ｙに基づき、ＡＳＣＩＩ文字で構成されるファイル名を作成し、含まれる場合は、前記ファイル名Ｙのユニコード列の各ユニコードに前記ユニコードハッシュ関数を適用して、前記ファイル名Ｙのユニコード列を００〜７Ｆの範囲の１バイトコードの列に変換し、前記変換した１バイトコードの列に基づき、ＡＳＣＩＩ文字で構成されるファイル名を作成し、前記作成したファイル名を用いて前記ファイルシステムを介して前記記憶媒体に前記ファイルＸを書き込む手段と、
を備えることを特徴とするファイル管理モジュール。
【請求項２】
クライアント端末からのファイル読み出し要求に応じて、ファイルシステムを介して記憶媒体からファイルを読み出してクライアント端末に送信し、クライアント端末からのファイル書き込み要求に応じて、ファイルシステムを介して記憶媒体にファイルを書き込むファイル管理モジュールであって、
１バイトコード００〜ＦＦを入力とし、１文字分のユニコードを出力する１バイトコードハッシュ関数を記憶する手段と、
前記記憶媒体に格納される各ファイルについて、ファイル名のローカルコード列を取得し、前記取得したローカルコード列を１バイトコード列と見なした場合の各１バイトコードに前記１バイトコードハッシュ関数を適用して、前記取得したローカルコード列をユニコード列に変換し、前記変換したユニコード列により該ファイルの変換後ファイル名を設定するファイル名変換手段と、
前記クライアント端末から前記記憶媒体に格納される各ファイルのファイル情報の要求を受け付けた場合、前記記憶媒体に格納される各ファイルについて、前記ファイル名変換手段によって設定された変換後ファイル名を含むファイル情報を、前記クライアント端末に送信する手段と、
前記クライアント端末から前記変換後ファイル名を指定したファイル読み出し要求を受け付けた場合、前記記憶媒体に格納される各ファイルについて、前記ファイル名変換手段によって設定された変換後ファイル名のユニコード列を前記指定された変換後ファイル名のユニコード列と比較し、ユニコード列が一致したファイルを前記ファイルシステムを介して前記記憶媒体から読み出して前記クライアント端末に送信する手段と、
１文字分のユニコードを入力とし、ＡＳＣＩＩ文字に割り当てられる００〜７Ｆの範囲の１バイトコードを出力するユニコードハッシュ関数を記憶する手段と、
前記クライアント端末からユニコードで記述されたファイル名Ｙを指定したファイルＸの書き込み要求を受け付けた場合、前記ファイル名Ｙに非ＡＳＣＩＩ文字が含まれているか否かを判定し、含まれない場合は、前記ファイル名Ｙに基づき、ＡＳＣＩＩ文字で構成されるファイル名を作成し、含まれる場合は、前記ファイル名Ｙのユニコード列の各ユニコードに前記ユニコードハッシュ関数を適用して、前記ファイル名Ｙのユニコード列を００〜７Ｆの範囲の１バイトコードの列に変換し、前記変換した１バイトコードの列に基づき、ＡＳＣＩＩ文字で構成されるファイル名を作成し、前記作成したファイル名を用いて前記ファイルシステムを介して前記記憶媒体に前記ファイルＸを書き込む手段と、
を備えることを特徴とするファイル管理モジュール。
【請求項３】
前記１バイトコード変換テーブルは、１バイトコード００〜７Ｆそれぞれに対して、ＡＳＣＩＩ文字のユニコードを重複なく割り当てて構成されていることを特徴とする請求項１記載のファイル管理モジュール。
【請求項４】
前記１バイトコードハッシュ関数は、１バイトコード００〜７Ｆが入力された場合、ＡＳＣＩＩ文字のユニコードを出力することを特徴とする請求項２記載のファイル管理モジュール。
【請求項５】
クライアント端末からのファイル読み出し要求に応じて、ファイルシステムを介して記憶媒体からファイルを読み出してクライアント端末に送信するファイル管理モジュールであって、
１バイトコード００〜ＦＦそれぞれに対していずれかのユニコードを重複なく割り当てた１バイトコード変換テーブルを記憶する手段と、
前記記憶媒体に格納される各ファイルについて、ファイル名のローカルコード列を取得し、前記取得したローカルコード列を１バイトコード列と見なした場合の各１バイトコードに前記１バイトコード変換テーブルを適用して、前記取得したローカルコード列をユニコード列に変換し、前記変換したユニコード列により該ファイルの変換後ファイル名を設定するファイル名変換手段と、
前記クライアント端末から前記記憶媒体に格納される各ファイルのファイル情報の要求を受け付けた場合、前記記憶媒体に格納される各ファイルについて、前記ファイル名変換手段によって設定された変換後ファイル名を含むファイル情報を、前記クライアント端末に送信する手段と、
前記クライアント端末から前記変換後ファイル名を指定したファイル読み出し要求を受け付けた場合、前記指定された変換後ファイル名のユニコード列の各ユニコードに前記１バイトコード変換テーブルを適用して、前記変換後ファイル名のユニコード列をローカルコード列に変換し、前記変換したローカルコード列を前記記憶媒体に格納される各ファイルのファイル名のローカルコード列と比較し、ローカルコード列が一致したファイルを前記ファイルシステムを介して前記記憶媒体から読み出して前記クライアント端末に送信する手段と、
を備えることを特徴とするファイル管理モジュール。
【請求項６】
クライアント端末からのファイル読み出し要求に応じて、ファイルシステムを介して記憶媒体からファイルを読み出してクライアント端末に送信するファイル管理モジュールであって、
１バイトコード００〜ＦＦを入力とし、１文字分のユニコードを出力する１バイトコードハッシュ関数を記憶する手段と、
前記記憶媒体に格納される各ファイルについて、ファイル名のローカルコード列を取得し、前記取得したローカルコード列を１バイトコード列と見なした場合の各１バイトコードに前記１バイトコードハッシュ関数を適用して、前記取得したローカルコード列をユニコード列に変換し、前記変換したユニコード列により該ファイルの変換後ファイル名を設定するファイル名変換手段と、
前記クライアント端末から前記記憶媒体に格納される各ファイルのファイル情報の要求を受け付けた場合、前記記憶媒体に格納される各ファイルについて、前記ファイル名変換手段によって設定された変換後ファイル名を含むファイル情報を、前記クライアント端末に送信する手段と、
前記クライアント端末から前記変換後ファイル名を指定したファイル読み出し要求を受け付けた場合、前記記憶媒体に格納される各ファイルについて、前記ファイル名変換手段によって設定された変換後ファイル名のユニコード列を前記指定された変換後ファイル名のユニコード列と比較し、ユニコード列が一致したファイルを前記ファイルシステムを介して前記記憶媒体から読み出して前記クライアント端末に送信する手段と、
を備えることを特徴とするファイル管理モジュール。
【請求項７】
クライアント端末からのファイル書き込み要求に応じて、ファイルシステムを介して記憶媒体にファイルを書き込むファイル管理モジュールであって、
１文字分のユニコードを入力とし、ＡＳＣＩＩ文字に割り当てられる００〜７Ｆの範囲の１バイトコードを出力するユニコードハッシュ関数を記憶する手段と、
前記クライアント端末からユニコードで記述されたファイル名Ｙを指定したファイルＸの書き込み要求を受け付けた場合、前記ファイル名Ｙに非ＡＳＣＩＩ文字が含まれているか否かを判定し、含まれない場合は、前記ファイル名Ｙに基づき、ＡＳＣＩＩ文字で構成されるファイル名を作成し、含まれる場合は、前記ファイル名Ｙのユニコード列の各ユニコードに前記ユニコードハッシュ関数を適用して、前記ファイル名Ｙのユニコード列を００〜７Ｆの範囲の１バイトコードの列に変換し、前記変換した１バイトコードの列に基づき、ＡＳＣＩＩ文字で構成されるファイル名を作成し、前記作成したファイル名を用いて前記ファイルシステムを介して前記記憶媒体に前記ファイルＸを書き込む手段と、
を備えることを特徴とするファイル管理モジュール。
【請求項８】
請求項１乃至７のいずれか1項に記載のファイル管理モジュールと、前記ファイルシステムと、前記ファイルシステムを介して前記記憶媒体にアクセスするためのインタフェースと、前記クライアント端末と通信するためのインタフェースとを備える印刷装置。
【請求項９】
クライアント端末からのファイル読み出し要求に応じて、ファイルシステムを介して記憶媒体からファイルを読み出してクライアント端末に送信するファイル読み出し工程と、クライアント端末からのファイル書き込み要求に応じて、ファイルシステムを介して記憶媒体にファイルを書き込むファイル書き込み工程とを含むファイル管理方法であって、
前記ファイル読み出し工程が、
前記記憶媒体に格納される各ファイルについて、ファイル名のローカルコード列を取得する工程と、
前記取得したローカルコード列を１バイトコード列と見なした場合の各１バイトコードに、１バイトコード００〜ＦＦそれぞれに対していずれかのユニコードを重複なく割り当てた１バイトコード変換テーブルを適用して、前記取得したローカルコード列をユニコード列に変換する工程と、
前記変換したユニコード列により該ファイルの変換後ファイル名を設定する工程と、
前記クライアント端末から前記記憶媒体に格納される各ファイルのファイル情報の要求を受け付けた場合、前記記憶媒体に格納される各ファイルについて、前記ファイル名変換手段によって設定された変換後ファイル名を含むファイル情報を、前記クライアント端末に送信する工程と、
前記クライアント端末から前記変換後ファイル名を指定したファイル読み出し要求を受け付けた場合、前記指定された変換後ファイル名のユニコード列の各ユニコードに前記１バイトコード変換テーブルを適用して、前記変換後ファイル名のユニコード列をローカルコード列に変換する工程と、
前記変換したローカルコード列を前記記憶媒体に格納される各ファイルのファイル名のローカルコード列と比較する工程と、
前記比較の結果、ローカルコード列が一致したファイルを前記ファイルシステムを介して前記記憶媒体から読み出して前記クライアント端末に送信する工程と、
１文字分のユニコードを入力とし、ＡＳＣＩＩ文字に割り当てられる００〜７Ｆの範囲の１バイトコードを出力するユニコードハッシュ関数を記憶する手段と、を備え、
前記ファイル書き込み工程が、
前記クライアント端末からユニコードで記述されたファイル名Ｙを指定したファイルＸの書き込み要求を受け付けた場合、前記ファイル名Ｙに非ＡＳＣＩＩ文字が含まれているか否かを判定する工程と、
前記判定の結果、含まれない場合は、前記ファイル名Ｙに基づき、ＡＳＣＩＩ文字で構成されるファイル名を作成する工程と、
前記判定の結果、含まれる場合は、前記ファイル名Ｙのユニコード列の各ユニコードに前記ユニコードハッシュ関数を適用して、前記ファイル名Ｙのユニコード列を００〜７Ｆの範囲の１バイトコードの列に変換し、前記変換した１バイトコードの列に基づき、ＡＳＣＩＩ文字で構成されるファイル名を作成する工程と、
前記作成したファイル名を用いて前記ファイルシステムを介して前記記憶媒体に前記ファイルＸを書き込む工程と、を備えることを特徴とするファイル管理方法。
【請求項１０】
請求項９記載のファイル管理方法をコンピュータで実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント端末からの要求に応じて、ファイルシステムを介してファイル読み出し／書き込みを行うファイル管理技術に関する。
【背景技術】
【０００２】
従来、メモリカードやハードディスク等の記憶媒体におけるファイル管理は、ローカルコード（ＳＪＩＳなど）を用いてファイル名（ショートファイル名）を記述するＦＡＴファイルシステムによって行われる場合が多い。ＦＡＴファイルシステムを拡張したものとして、ショートファイル名に加えて、オプションとしてロングファイル名を設定することができるＶＦＡＴ（Virtual FAT）ファイルシステムも存在する。ロングファイル名は、ユニコードにて記述され、２５５文字までの長さが許される一方、ショートファイル名は、ローカルコードにて記述され、いわゆる８．３形式（８文字＋拡張子３文字）に限定される。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
クライアント端末から、ネットワークを介してプリンタ等の機器のメモリスロットに挿入されたメモリカード内のファイルを読み出したり、メモリカードにファイルを書き込んだりする状況を考える。
【０００４】
この場合、クライアント端末とプリンタ等との間の通信プロトコルにおいて、ユニコードで記述したファイル名を用いてファイルを指定することが規定されている一方、メモリカード内のファイルがＦＡＴなどのローカルコードでショートファイル名を記述するファイルシステムによって管理されている場合、プリンタ等では次のようなコード変換が必要となる。
【０００５】
すなわち、読み出し対象を選択するためのファイル情報をクライアント端末に提供するにあたり、メモリカード内のファイルのショートファイル名をユニコードで記述されたものに変換して、ファイル情報を作成する必要がある。
【０００６】
また、クライアント端末がユニコードで記述されたショートファイル名を指定してファイル読み出しを要求する可能性があるので、指定されたファイル名に関して、メモリカード内のファイルのロングファイル名と比較するだけでなく、メモリカード内のファイルのショートファイル名をユニコードで記述したものに変換して比較する（又は、指定されたファイル名をローカルコードで記述したものに変換して、メモリカード内のファイルのショートファイル名と比較する）必要がある。
【０００７】
更に、クライアント端末からの書き込み要求で指定されるファイル名はユニコードで記述されることから、指定されたファイル名をロングファイル名として用いるとともに、該ファイル名をローカルコードに変換して（必要に応じて省略して）ショートファイル名を作成し、メモリカードに書き込む必要がある。
【０００８】
しかし、プリンタ等においてこのようなコード変換を行う場合、以下のような点が問題となる。
【０００９】
すなわち、プリンタ等に対して、メモリカード内のファイルが採用するローカルコードのコード体系を予め指定しておく（換言すれば、コード変換を行う際に使用する変換テーブルを予め指定しておく）必要がある。メモリカード内に異なるコード体系を採用したファイルが複数存在する場合、ファイルごとにこのような指定を行うのは煩雑であり、またメモリカード内のファイルが他者によって作成されたものである場合、そもそもどのようなコード体系を採用して作成されたファイルなのかを判別することは難しい。
【００１０】
また、複数のローカルコードのコード体系に対応できるようにするためには、各コード体系ごとに変換テーブルが必要となるため、そのためのメモリ資源も多量に必要となってしまうという問題も生じる。また、新しいコード体系に対応させるためには、対応する変換テーブルをプリンタ等に導入するといったローカライズ作業が必要となり、このような作業はユーザ等に大きな負担を与えることになる。
【００１１】
そこで、本発明は、ローカルコードのコード体系ごとに変換テーブルを有する必要を無くし、ローカルコードのコード体系を予め指定せずともファイルシステムを介してファイルの読み出し／書き込みを行うことができる新しい枠組みを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明のファイル管理モジュールは、クライアント端末からのファイル読み出し要求に応じて、ファイルシステムを介して記憶媒体からファイルを読み出してクライアント端末に送信し、クライアント端末からのファイル書き込み要求に応じて、ファイルシステムを介して記憶媒体にファイルを書き込むファイル管理モジュールであって、１バイトコード００〜ＦＦそれぞれに対していずれかのユニコードを重複なく割り当てた１バイトコード変換テーブルを記憶する手段と、前記記憶媒体に格納される各ファイルについて、ファイル名のローカルコード列を取得し、前記取得したローカルコード列を１バイトコード列と見なした場合の各１バイトコードに前記１バイトコード変換テーブルを適用して、前記取得したローカルコード列をユニコード列に変換し、前記変換したユニコード列により該ファイルの変換後ファイル名を設定するファイル名変換手段と、前記クライアント端末から前記記憶媒体に格納される各ファイルのファイル情報の要求を受け付けた場合、前記記憶媒体に格納される各ファイルについて、前記ファイル名変換手段によって設定された変換後ファイル名を含むファイル情報を、前記クライアント端末に送信する手段と、前記クライアント端末から前記変換後ファイル名を指定したファイル読み出し要求を受け付けた場合、前記指定された変換後ファイル名のユニコード列の各ユニコードに前記１バイトコード変換テーブルを適用して、前記変換後ファイル名のユニコード列をローカルコード列に変換し、前記変換したローカルコード列を前記記憶媒体に格納される各ファイルのファイル名のローカルコード列と比較し、ローカルコード列が一致したファイルを前記ファイルシステムを介して前記記憶媒体から読み出して前記クライアント端末に送信する手段と、１文字分のユニコードを入力とし、ＡＳＣＩＩ文字に割り当てられる００〜７Ｆの範囲の１バイトコードを出力するユニコードハッシュ関数を記憶する手段と、前記クライアント端末からユニコードで記述されたファイル名Ｙを指定したファイルＸの書き込み要求を受け付けた場合、前記ファイル名Ｙに非ＡＳＣＩＩ文字が含まれているか否かを判定し、含まれない場合は、前記ファイル名Ｙに基づき、ＡＳＣＩＩ文字で構成されるファイル名を作成し、含まれる場合は、前記ファイル名Ｙのユニコード列の各ユニコードに前記ユニコードハッシュ関数を適用して、前記ファイル名Ｙのユニコード列を００〜７Ｆの範囲の１バイトコードの列に変換し、前記変換した１バイトコードの列に基づき、ＡＳＣＩＩ文字で構成されるファイル名を作成し、前記作成したファイル名を用いて前記ファイルシステムを介して前記記憶媒体に前記ファイルＸを書き込む手段と、を備えることを特徴とする。
【００１３】
かかる構成によれば、１バイトコード変換テーブルは、ローカルコードに依存しない共通変換テーブルとして機能するため、ファイル読み出しのためにローカルコードのコード体系ごとに変換テーブルを有する必要はなく、ローカルコードのコード体系を予め指定せずとも、ファイルシステムを介してファイルの読み出しを行うことができる。
【００１４】
またかかる構成によれば、ユニコードハッシュ関数は、ローカルコードに共通するコードを出力するハッシュ関数として機能するため、ファイル書き込みのためにローカルコードのコード体系ごとに変換テーブルを有する必要はなく、ローカルコードのコード体系を予め指定せずとも、ファイルシステムを介してファイルの書き込みを行うことができる。また、かかる構成のもと書き込まれたファイルＸは、そのショートファイル名がＡＳＣＩＩ文字のみから構成され、従って、どのようなローカルコードのコード体系を採用するファイルシステムにおいても、同一の文字列として正しく読み出すことができる。
【００１５】
また本発明のファイル管理モジュールは、クライアント端末からのファイル読み出し要求に応じて、ファイルシステムを介して記憶媒体からファイルを読み出してクライアント端末に送信し、クライアント端末からのファイル書き込み要求に応じて、ファイルシステムを介して記憶媒体にファイルを書き込むファイル管理モジュールであって、１バイトコード００〜ＦＦを入力とし、１文字分のユニコードを出力する１バイトコードハッシュ関数を記憶する手段と、前記記憶媒体に格納される各ファイルについて、ファイル名のローカルコード列を取得し、前記取得したローカルコード列を１バイトコード列と見なした場合の各１バイトコードに前記１バイトコードハッシュ関数を適用して、前記取得したローカルコード列をユニコード列に変換し、前記変換したユニコード列により該ファイルの変換後ファイル名を設定するファイル名変換手段と、前記クライアント端末から前記記憶媒体に格納される各ファイルのファイル情報の要求を受け付けた場合、前記記憶媒体に格納される各ファイルについて、前記ファイル名変換手段によって設定された変換後ファイル名を含むファイル情報を、前記クライアント端末に送信する手段と、前記クライアント端末から前記変換後ファイル名を指定したファイル読み出し要求を受け付けた場合、前記記憶媒体に格納される各ファイルについて、前記ファイル名変換手段によって設定された変換後ファイル名のユニコード列を前記指定された変換後ファイル名のユニコード列と比較し、ユニコード列が一致したファイルを前記ファイルシステムを介して前記記憶媒体から読み出して前記クライアント端末に送信する手段と、１文字分のユニコードを入力とし、ＡＳＣＩＩ文字に割り当てられる００〜７Ｆの範囲の１バイトコードを出力するユニコードハッシュ関数を記憶する手段と、前記クライアント端末からユニコードで記述されたファイル名Ｙを指定したファイルＸの書き込み要求を受け付けた場合、前記ファイル名Ｙに非ＡＳＣＩＩ文字が含まれているか否かを判定し、含まれない場合は、前記ファイル名Ｙに基づき、ＡＳＣＩＩ文字で構成されるファイル名を作成し、含まれる場合は、前記ファイル名Ｙのユニコード列の各ユニコードに前記ユニコードハッシュ関数を適用して、前記ファイル名Ｙのユニコード列を００〜７Ｆの範囲の１バイトコードの列に変換し、前記変換した１バイトコードの列に基づき、ＡＳＣＩＩ文字で構成されるファイル名を作成し、前記作成したファイル名を用いて前記ファイルシステムを介して前記記憶媒体に前記ファイルＸを書き込む手段と、を備えることを特徴とする。
【００１６】
好適には、前記１バイトコード変換テーブルは、１バイトコード００〜７Ｆそれぞれに対して、ＡＳＣＩＩ文字のユニコードを重複なく割り当てて構成されていることを特徴とする。
【００１７】
また好適には、前記１バイトコードハッシュ関数は、１バイトコード００〜７Ｆが入力された場合、ＡＳＣＩＩ文字のユニコードを出力することを特徴とする。
【００１８】
また本発明のファイル管理モジュールは、クライアント端末からのファイル読み出し要求に応じて、ファイルシステムを介して記憶媒体からファイルを読み出してクライアント端末に送信するファイル管理モジュールであって、１バイトコード００〜ＦＦそれぞれに対していずれかのユニコードを重複なく割り当てた１バイトコード変換テーブルを記憶する手段と、前記記憶媒体に格納される各ファイルについて、ファイル名のローカルコード列を取得し、前記取得したローカルコード列を１バイトコード列と見なした場合の各１バイトコードに前記１バイトコード変換テーブルを適用して、前記取得したローカルコード列をユニコード列に変換し、前記変換したユニコード列により該ファイルの変換後ファイル名を設定するファイル名変換手段と、前記クライアント端末から前記記憶媒体に格納される各ファイルのファイル情報の要求を受け付けた場合、前記記憶媒体に格納される各ファイルについて、前記ファイル名変換手段によって設定された変換後ファイル名を含むファイル情報を、前記クライアント端末に送信する手段と、前記クライアント端末から前記変換後ファイル名を指定したファイル読み出し要求を受け付けた場合、前記指定された変換後ファイル名のユニコード列の各ユニコードに前記１バイトコード変換テーブルを適用して、前記変換後ファイル名のユニコード列をローカルコード列に変換し、前記変換したローカルコード列を前記記憶媒体に格納される各ファイルのファイル名のローカルコード列と比較し、ローカルコード列が一致したファイルを前記ファイルシステムを介して前記記憶媒体から読み出して前記クライアント端末に送信する手段と、を備えることを特徴とする。
【００１９】
また本発明のファイル管理モジュールは、クライアント端末からのファイル読み出し要求に応じて、ファイルシステムを介して記憶媒体からファイルを読み出してクライアント端末に送信するファイル管理モジュールであって、１バイトコード００〜ＦＦを入力とし、１文字分のユニコードを出力する１バイトコードハッシュ関数を記憶する手段と、前記記憶媒体に格納される各ファイルについて、ファイル名のローカルコード列を取得し、前記取得したローカルコード列を１バイトコード列と見なした場合の各１バイトコードに前記１バイトコードハッシュ関数を適用して、前記取得したローカルコード列をユニコード列に変換し、前記変換したユニコード列により該ファイルの変換後ファイル名を設定するファイル名変換手段と、前記クライアント端末から前記記憶媒体に格納される各ファイルのファイル情報の要求を受け付けた場合、前記記憶媒体に格納される各ファイルについて、前記ファイル名変換手段によって設定された変換後ファイル名を含むファイル情報を、前記クライアント端末に送信する手段と、前記クライアント端末から前記変換後ファイル名を指定したファイル読み出し要求を受け付けた場合、前記記憶媒体に格納される各ファイルについて、前記ファイル名変換手段によって設定された変換後ファイル名のユニコード列を前記指定された変換後ファイル名のユニコード列と比較し、ユニコード列が一致したファイルを前記ファイルシステムを介して前記記憶媒体から読み出して前記クライアント端末に送信する手段と、を備えることを特徴とする。
【００２０】
また本発明のファイル管理モジュールは、クライアント端末からのファイル書き込み要求に応じて、ファイルシステムを介して記憶媒体にファイルを書き込むファイル管理モジュールであって、１文字分のユニコードを入力とし、ＡＳＣＩＩ文字に割り当てられる００〜７Ｆの範囲の１バイトコードを出力するユニコードハッシュ関数を記憶する手段と、前記クライアント端末からユニコードで記述されたファイル名Ｙを指定したファイルＸの書き込み要求を受け付けた場合、前記ファイル名Ｙに非ＡＳＣＩＩ文字が含まれているか否かを判定し、含まれない場合は、前記ファイル名Ｙに基づき、ＡＳＣＩＩ文字で構成されるファイル名を作成し、含まれる場合は、前記ファイル名Ｙのユニコード列の各ユニコードに前記ユニコードハッシュ関数を適用して、前記ファイル名Ｙのユニコード列を００〜７Ｆの範囲の１バイトコードの列に変換し、前記変換した１バイトコードの列に基づき、ＡＳＣＩＩ文字で構成されるファイル名を作成し、前記作成したファイル名を用いて前記ファイルシステムを介して前記記憶媒体に前記ファイルＸを書き込む手段と、を備えることを特徴とする。
【００２１】
本発明の印刷装置は、本発明のファイル管理モジュールと、前記ファイルシステムと、前記ファイルシステムを介して前記記憶媒体にアクセスするためのインタフェースと、前記クライアント端末と通信するためのインタフェースとを備える。
【００２２】
本発明のファイル管理方法は、クライアント端末からのファイル読み出し要求に応じて、ファイルシステムを介して記憶媒体からファイルを読み出してクライアント端末に送信するファイル読み出し工程と、クライアント端末からのファイル書き込み要求に応じて、ファイルシステムを介して記憶媒体にファイルを書き込むファイル書き込み工程とを含むファイル管理方法であって、前記ファイル読み出し工程が、前記記憶媒体に格納される各ファイルについて、ファイル名のローカルコード列を取得する工程と、前記取得したローカルコード列を１バイトコード列と見なした場合の各１バイトコードに、１バイトコード００〜ＦＦそれぞれに対していずれかのユニコードを重複なく割り当てた１バイトコード変換テーブルを適用して、前記取得したローカルコード列をユニコード列に変換する工程と、前記変換したユニコード列により該ファイルの変換後ファイル名を設定する工程と、前記クライアント端末から前記記憶媒体に格納される各ファイルのファイル情報の要求を受け付けた場合、前記記憶媒体に格納される各ファイルについて、前記ファイル名変換手段によって設定された変換後ファイル名を含むファイル情報を、前記クライアント端末に送信する工程と、前記クライアント端末から前記変換後ファイル名を指定したファイル読み出し要求を受け付けた場合、前記指定された変換後ファイル名のユニコード列の各ユニコードに前記１バイトコード変換テーブルを適用して、前記変換後ファイル名のユニコード列をローカルコード列に変換する工程と、前記変換したローカルコード列を前記記憶媒体に格納される各ファイルのファイル名のローカルコード列と比較する工程と、前記比較の結果、ローカルコード列が一致したファイルを前記ファイルシステムを介して前記記憶媒体から読み出して前記クライアント端末に送信する工程と、１文字分のユニコードを入力とし、ＡＳＣＩＩ文字に割り当てられる００〜７Ｆの範囲の１バイトコードを出力するユニコードハッシュ関数を記憶する手段と、を備え、前記ファイル書き込み工程が、前記クライアント端末からユニコードで記述されたファイル名Ｙを指定したファイルＸの書き込み要求を受け付けた場合、前記ファイル名Ｙに非ＡＳＣＩＩ文字が含まれているか否かを判定する工程と、前記判定の結果、含まれない場合は、前記ファイル名Ｙに基づき、ＡＳＣＩＩ文字で構成されるファイル名を作成する工程と、前記判定の結果、含まれる場合は、前記ファイル名Ｙのユニコード列の各ユニコードに前記ユニコードハッシュ関数を適用して、前記ファイル名Ｙのユニコード列を００〜７Ｆの範囲の１バイトコードの列に変換し、前記変換した１バイトコードの列に基づき、ＡＳＣＩＩ文字で構成されるファイル名を作成する工程と、前記作成したファイル名を用いて前記ファイルシステムを介して前記記憶媒体に前記ファイルＸを書き込む工程と、を備えることを特徴とする。
【００２３】
本発明のファイル管理方法は、印刷装置や情報処理装置において実施することができるが、そのためのプログラムの全体又は一部は、ＣＤ−ＲＯＭ、磁気ディスク、半導体メモリ及び通信ネットワークなどの各種の媒体を通じてインストールまたはロードすることができる。
【００２４】
なお、本発明において、手段とは、単に物理的手段を意味するものではなく、その手段が有する機能をソフトウェアによって実現する場合も含む。また、１つの手段や装置が有する機能が２つ以上の物理的手段や装置により実現されても、２つ以上の手段や装置の機能が１つの物理的手段や装置により実現されても良い。
【発明の効果】
【００２５】
以上、本発明によれば、ローカルコードのコード体系ごとに変換テーブルを有する必要が無くなり、ローカルコードのコード体系を予め指定せずともファイルシステムを介してファイルの読み出し／書き込みを行うことが可能となる。
【発明を実施するための最良の形態】
【００２６】
図面を参照して本発明の実施形態を説明する。
【００２７】
図１は、本実施形態に係るプリンタ１の外観を示す図である。図１（ａ）は、本実施形態に係るプリンタ１を正面方向からみた場合の斜視図であり、図１（ｂ）は、本実施形態に係るプリンタ１の概略背面図である。
【００２８】
図１（ａ）に示すように、プリンタ１の本体２の上面右側には、操作パネル３が設けられている。ユーザは、この操作パネル３を操作することで、印刷指示等の各種指示をプリンタに与えることができる。プリンタ１の本体２の背面側には、用紙供給装置４が設けられ、シートフィーダー５にセットされた用紙あるいはロール紙支持部６にセットされたロール紙が本体２内部に給紙される。プリンタ１の本体２の中央に設けられたカバー７の下方には、印刷機構（図示せず）が搭載され、印刷機構が印刷処理を実行すると、印刷後の用紙８が本体２の前側下部の排紙口９から排出される。
【００２９】
操作パネル３は、設定画面１０を有する表示装置１１と、複数の操作ボタン１３ａ〜１３ｃからなる操作手段としての操作部１２とを備えており、ユーザインタフェースを構成している。設定画面１０は、例えば、用紙種類、用紙サイズ、レイアウト、写真選択、印刷枚数等を設定するための画面を表示する。操作部１２は、プリンタ１に電源を投入するための電源スイッチ１３ａと、エラー発生時に押されるメンテナンススイッチ１３ｂと、ロール紙を操作するときに押されるロール紙スイッチ１３ｃとから構成されている。
【００３０】
また、プリンタ１の本体２の正面右側にはスロット１７〜１９が設けられ、これらは記憶媒体１４〜１６（コンパクトフラッシュ（登録商標）、スマートメディア、メモリースティックなど）にアクセスするためのハードウェアインタフェースを構成している。また、各スロット１７〜１９の横にはそれぞれＬＥＤ１７ａ〜１９ａが配置され、有効なスロット（挿入された記憶媒体へのアクセスが許可されているスロット）のＬＥＤが点灯するように構成されている。
【００３１】
プリンタ１の本体２の上部には、各記憶媒体１４〜１６から読み込んだ画像を表示する表示装置（モニタ）２０が取り付けられている。モニタ２０のモニタ画面２１は、画像確認やプリントレイアウトの確認を行うための画面を表示する。
【００３２】
一方、図１（ｂ）に示すように、プリンタ１の本体２の背面下側にはポート２２、２５が設けられ、これらは外部の機器と通信する（接続する）ためのハードウェアインタフェースを構成している。
【００３３】
ポート２２は、プリンタ１がケーブル２７を介してと外部記憶装置２３（例えばＭＯ）と通信するためのものである。ユーザは、記憶媒体（例えばＭＯディスク）２４を外部記憶装置２３に挿入し、操作パネル１０を操作することにより、記憶媒体２４に記憶された印刷対象データをダイレクトに印刷する指示などをプリンタ１に与えることができる。
【００３４】
ポート２５は、プリンタ１が通信ネットワーク２８を介してクライアント端末２６と通信するためのものである。クライアント端末２６は、ポート２５を介して、各スロット１７〜１９に挿入された記憶媒体１４〜１６や外部記憶装置２３に挿入された記憶媒体２４にアクセスする。ユーザは、クライアント端末２６に対して、記憶媒体１４〜１６及び２４からの所定のファイルの読み出し指示または記憶媒体１４〜１６及び２４への所定のファイルの書き込み指示を与えることができる。
【００３５】
図２は、本実施形態に係るプリンタの構成を示すブロック図である。
【００３６】
図２（ａ）は、プリンタ１の主要なハードウェア構成を示す。同図に示すように、プリンタ１は、通常のプリンタ装置と同様のハードウェア構成を備える。
【００３７】
例えば、プリンタ１は、用紙をプリンタ内に供給する給紙機構、印字を行う印刷エンジン、及び用紙をプリンタ機外に排出する排紙機構等のハードウェアにより構成される印刷処理部４０を備える。印刷エンジンは、通常、紙送機構、キャリッジ機構、印刷ヘッドなどを含んで構成され、インクジェットプリンタや熱転写プリンタのように１文字単位で印刷するシリアルプリンタ、１行単位で印刷するラインプリンタ、ページ単位で印刷するページプリンタ等に対応する各種印刷エンジンを用いることができる。
【００３８】
また例えば、プリンタ１は、ＣＰＵ、ＲＯＭ、ＲＡＭ、ユーザインタフェース、ハードウェアインタフェース等のハードウェアにより構成される情報処理部４１を備える。情報処理部４１は、印刷処理部４０を制御して印刷処理を実行させる。
【００３９】
図２（ｂ）は、プリンタ１の主要な機能構成を示す。
【００４０】
スロット制御部３０〜３２は、それぞれ対応するスロット１７〜１９に記憶媒体が挿入されたことを検知すると、初期化処理を実行して各記憶媒体へのアクセスを可能な状態にするとともに、その旨をファイルシステム３６に通知する。
【００４１】
外部記憶装置制御部３３は、外部記憶装置２３に記憶媒体が挿入されたことをポート２２を介して検知すると、初期化処理を実行して記憶媒体へのアクセスを可能な状態にするとともに、その旨をファイルシステム３６に通知する。
【００４２】
アクセス制御部３４は、クライアント端末２６からのファイルシステム３６へのアクセス要求をポート２５を介して受け付けると、その旨をファイル管理モジュール３５に通知する。ここで、本実施形態では、クライアント端末２６とプリンタ１との間の通信プロトコルにおいて、ユニコードで記述したファイル名を用いてファイルを指定することが規定されているものとする。従って、アクセス制御部３４が受け付けるアクセス要求にファイル名が含まれる場合、該ファイル名はユニコードで記述されているものとする。
【００４３】
ファイル管理モジュール３５は、アクセス制御部３４からのアクセス要求に応じて、該アクセス要求で指定されたファイル名の変換を行い、変換後のファイル名を用いてファイルシステム３６を介して各記憶媒体からファイルを読み出す／各記憶媒体にファイルを書き込む。具体的には、ファイル管理モジュール３５は、図３に示すように、１バイトコード変換テーブル１００、ユニコードハッシュ関数１０１などを記憶する記憶部、ファイル名変換機能、ファイル情報送信機能、ファイル読出機能、ファイル書込機能などを実行する機能部を備えている。図３では、機能部の各機能を機能手段として図示している。なおファイル管理モジュール３５の動作については、後に詳述する。
【００４４】
ファイルシステム３６は、例えばＦＡＴのような、ローカルコードでファイル名（ショートファイル名）を記述する従来のファイルシステムであり、ファイル管理モジュール３５や印刷制御部３７にファイルアクセス手段を提供するとともに、各記憶媒体のファイル情報を管理する。
【００４５】
印刷制御部３７は、ユーザの指示に従って、ファイルシステム３６を介して各記憶媒体に記憶された印刷対象データを取得し、該印刷対象データを印刷するための印刷要求を印刷処理部４０に通知する。また、印刷制御部３７は、印刷処理部４０からの情報に従って、プリンタ１が印刷中か否か、印刷エラーが発生しているか否かといったプリンタ１の状態を管理する。
【００４６】
これらの各手段は、情報処理部４１において、ＲＯＭ又はＲＡＭに格納されるアプリケーションプログラムをＣＰＵが実行することにより、機能的に実現される。これらのアプリケーションプログラムは、例えばＣＤ−ＲＯＭ、磁気ディスク、半導体メモリなどの各種の記録媒体を通じて、又は通信ネットワークを介して、情報処理部４１にインストールまたはロードすることができる構成となっていることが望ましい。
【００４７】
以下、図４、図５に示すフローチャート等を参照し、ファイルシステム３６を介して記憶媒体１４に格納されるファイルにアクセスする場合を例に、プリンタ１におけるファイルアクセス処理（ファイル読み出し処理、ファイル書き込み処理）について説明する。なお、本明細書において、フローチャート等に示す各工程（符号が付与されていない部分的な工程を含む）は処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。また、する。
【００４８】
（ファイル読み出し処理：図４）
クライアント端末２６は、記憶媒体１４からファイルを読み出す場合、ユーザの指示に基づき、まず記憶媒体１４に格納されたファイルのファイル情報要求を作成し、プリンタ１に送信する。
【００４９】
アクセス制御部３４は、クライアント端末２６から記憶媒体１４に関するファイル情報の要求を受信した場合、該要求をファイル管理モジュール３５に通知する（Ｓ１００）。
【００５０】
ファイル管理モジュール３５は、ファイル情報要求を受け付けた場合、ファイルシステム３６を介して、記憶媒体１４に格納される各ファイルについて、ショートファイル名のローカルコード列を取得する（Ｓ１０１）。
【００５１】
次に、ファイル管理モジュール３５は、記憶媒体１４に格納される各ファイルについて、前記取得したローカルコード列を１バイトコード列と見なした場合の各１バイトコードに１バイトコード変換テーブル１００を適用して、前記取得したローカルコード列をユニコード列に変換し、前記変換したユニコード列により該ファイルの変換後ショートファイル名を設定する（Ｓ１０２）。
【００５２】
１バイトコード変換テーブル１００は、１バイトコード００〜ＦＦそれぞれに対していずれかのユニコードを重複なく割り当てたテーブルである。１バイトコード変換テーブル１００において、１バイトコード００〜ＦＦ全てに対して重複なくユニコード（制御文字以外の一般の文字のユニコード）が割り当てられていれば、各１バイトコードにどのユニコードを割り当てるかは設計に応じて定めることができる。従って、１バイトコード変換テーブル１００は、変換しようとしているショートファイル名が採用するローカルコードの変換テーブルである必要はない（換言すれば、１バイトコード変換テーブル１００は、ローカルコードに依存しない共通変換テーブルとして機能する）。
【００５３】
ただし、１バイトコード００〜７Ｆそれぞれに対して、ＡＳＣＩＩ文字のユニコードを重複なく割り当てることが望ましい。このように１バイトコード変換テーブル１００を設定することで、後述するように、変換後ショートファイル名をＡＳＣＩＩ文字のみで構成することができ、ファイル書き込み時に作成するショートファイル名と共通性を持たせることができる。
【００５４】
図６に１バイトコード変換テーブル１００の例を概念的に示す。１バイトの上位４ビットが行に、下位４ビットが列に割り当てられており、テーブル内の各要素には、上段にユニコードが表す文字が、下段にユニコードが示されている。例えばファイルＸのショートファイル名が「明細書」であり、ローカルコードがＳＪＩＳである場合、そのローカルコード列は「９６ＢＥ：８ＤＤ７：８Ｆ９１」となる。この場合、図６に示す１バイトコード変換テーブル１００を適用すると、ファイルＸの変換後ショートファイル名のユニコード列は「００Ｄ６：００ＦＥ：００ＣＤ：０１１７：００ＣＦ：００Ｄ１」となる。
【００５５】
かかる例からもわかるように、１バイトコード変換テーブル１００を適用してファイル名を変換した場合、変換前後でファイル名の文字は一致しない可能性がある。しかし、１バイトコード変換テーブル１００は、１バイトコード００〜ＦＦ全てに対してユニコードが割り当てられているため、ユニコードが割り当てられていないローカルコードが存在する可能性のある各ローカルコードごとの変換テーブルを適用した場合とは異なり、必ずユニコードで記述された変換後ショートファイル名を設定することができる。
【００５６】
次に、ファイル管理モジュール３５は、記憶媒体１４に格納される各ファイルについて前記設定した変換後ショートファイル名を含むファイル情報を作成し、クライアント端末２６に送信する（Ｓ１０３）。ファイル情報は、ロングファイル名が設定されているファイルについては、ロングファイル名のユニコード列を含んでいてもよい。また、ファイルサイズや作成日時などの情報を含んでいてもよい。
【００５７】
クライアント端末２６では、かかるファイル情報を受信した場合、該ファイル情報に基づき、変換後ショートファイル名等の一覧リストを表示部に表示する。ユーザは、かかる一覧リストを参照し、ファイル読み出しを指示することができる。クライアント端末２６では、ユーザからファイル読み出しの指示を受け付けた場合、指示されたファイルを変換後ショートファイル名等で指定したファイル読み出し要求を作成し、プリンタ１に送信する。
【００５８】
ファイル管理モジュール３５は、クライアント端末２６からファイル読み出し要求を受け付けた場合、まず前記ファイル読み出し要求において指定されたファイル名と、記憶媒体１４に格納される各ファイルのロングファイル名（設定されている場合）とを比較する（Ｓ１０４）。
【００５９】
ロングファイル名が一致するファイルがある場合、該ファイルをファイルシステム３６を介して記憶媒体１４から読み出して（Ｓ１０５）、クライアント端末２６に送信する（Ｓ１０６）。
【００６０】
一方、ロングファイル名が一致するファイルが無い場合、ファイル管理モジュール３５は、前記指定されたファイル名のユニコード列を取得し、前記取得したユニコード列の各ユニコードに１バイトコード変換テーブル１００を逆引きに（すなわち、ユニコード列から１バイトコードを得るように）適用して、前記指定されたファイル名のユニコード列をローカルコード列に変換する（Ｓ１０７）。
【００６１】
かかる変換ができた場合、ファイル管理モジュール３５は、前記指定されたファイル名が変換後ショートファイル名であると判断する。この場合、ファイルシステム３６を介して、記憶媒体１４に格納される各ファイルについて、ショートファイル名のローカルコード列を取得し、前記変換したローカルコード列を、前記取得した各ファイルのショートファイル名のローカルコード列と比較し（Ｓ１０８）、ローカルコード列が一致したファイルをファイルシステム３６を介して記憶媒体１４から読み出して（Ｓ１０９）、クライアント端末２６に送信する（Ｓ１０６）。
【００６２】
これにより、クライアント端末２６は、ユーザが指示したファイルを取得することができる。
【００６３】
なお、Ｓ１０７において変換ができない場合、ファイル管理モジュール３５は、前記指定されたファイル名が変換後ショートファイル名でないと判断する。この場合、ファイル管理モジュール３５は、記憶媒体１４に対応するファイルが存在しないと判断して、その旨のメッセージをクライアント端末２６に送信する。
【００６４】
このように、本実施形態では、記憶媒体１４に格納される各ファイルについてファイル情報を送信する際に、１バイトコード変換テーブル１００を用いて、ローカルコードで記述されたショートファイル名を、ユニコードで記述された変換後ショートファイル名に変換してファイル情報を作成し、また、クライアント端末２６から指定された変換後ショートファイル名を指定したファイル読み出し要求を受け付けた際に、１バイトコード変換テーブル１００を用いて、ユニコードで記述された変換後ショートファイル名を、ローカルコードで記述されたショートファイル名に変換して、記憶媒体１４に格納される各ファイルのショートファイル名と比較する構成を採用している。
【００６５】
かかる構成によれば、上述したように、１バイトコード変換テーブル１００は、ローカルコードに依存しない共通変換テーブルとして機能するため、ファイル読み出しのためにローカルコードのコード体系ごとに変換テーブルを有する必要はなく、ローカルコードのコード体系を予め指定せずとも、ファイルシステム３６を介してファイルの読み出しを行うことができる。また、コード体系ごとの変換テーブルが不要となる結果、変換テーブルのために必要であったメモリ資源の消費を抑制することができ、また新しいコード体系に対応させるためのローカライズ作業も不要となる。
【００６６】
（ファイル書き込み処理：図５）
クライアント端末２６は、記憶媒体１４にファイルＸを書き込む場合、ユーザの指示に基づき、ファイルＸの本体データ、ユニコードで記述されたファイル名Ｙなどを含むファイル書き込み要求を作成し、プリンタ１に送信する。
【００６７】
ファイル管理モジュール３５は、クライアント端末２６からファイル書き込み要求を受け付けた場合、該ファイル書き込み要求において指定されたファイル名Ｙのユニコード列を取得する（Ｓ２００）。
【００６８】
次に、ファイル管理モジュール３５は、前記取得したユニコード列に基づき、ファイル名Ｙに非ＡＳＣＩＩ文字が含まれているか否かを判定する（Ｓ２０１）。
【００６９】
非ＡＳＣＩＩ文字が含まれていない場合、ファイル管理モジュール３５は、ＡＳＣＩＩ文字のみから構成されるファイル名Ｙに基づき、ＡＳＣＩＩ文字で構成されるショートファイル名を作成し（Ｓ２０２）、その後、Ｓ２０５の工程に移行する。
【００７０】
ショートファイル名の作成は、従来と同様にして行うことができる。例えば、ファイル名Ｙが８．３形式を満たす場合、ファイル名Ｙのユニコード列をそのままローカルコード列として用いてショートファイル名を作成する。一方、ファイル名Ｙが８．３形式を満たさない場合、ファイル名Ｙを、８．３形式を満たし、かつＡＳＣＩＩ文字のみから構成されるように省略・変形し、省略・変形後のファイル名のユニコード列をローカルコード列として用いてショートファイル名を作成する。省略・変形の方法としては、例えば、ファイル名Ｙが「abcdefghijk.txt」である場合、これを「abcdef~1.txt」のように省略・変形することが考えられる。
【００７１】
一方、非ＡＳＣＩＩ文字が含まれている場合、ファイル管理モジュール３５は、ファイル名Ｙのユニコード列の各ユニコードにユニコードハッシュ関数１０１を適用して、ファイル名Ｙのユニコード列を００〜７Ｆの範囲の１バイトコードの列に変換する（Ｓ２０３）。
【００７２】
ユニコードハッシュ関数１０１は、１文字分のユニコードを入力とし、ＡＳＣＩＩ文字に割り当てられる００〜７Ｆの範囲、望ましくはＡＳＣＩＩ文字のうち制御文字以外の一般の文字（例えば、「Ａ」〜「Ｚ」、「０」〜「９」）に割り当てられる範囲の１バイトコードを出力するハッシュ関数である。通常、どのローカルコードにおいても、００〜７ＦにはＡＳＣＩＩ文字が割り当てられているため、ユニコードハッシュ関数１０１は、ローカルコードに共通するコードを出力するハッシュ関数として機能する。また、ユニコードハッシュ関数１０１を適用して得られる１バイトコードの列は、いずれのローカルコードのコード体系においても、ＡＳＣＩＩ文字のみから構成される同一の文字列を表すことになる。
【００７３】
ユニコードハッシュ関数１０１の態様は、設計に応じて定めることができる。例えば、１文字分のユニコードを１バイトごとに区切り、前記区切って得られた各１バイトを合計し、かかる合計値を１２７で割った場合の剰余を出力するように、ユニコードハッシュ関数１０１を定めてもよい。また例えば、ＡＳＣＩＩ文字のユニコードが入力された場合、そのＡＳＣＩＩ文字に対応する１バイトコードを出力し、非ＡＳＣＩＩ文字のユニコードが入力された場合、特定のＡＳＣＩＩ文字（例えば、「＿」）に割り当てられる１バイトコードを出力するように、ユニコードハッシュ関数１０１を定めてもよい。
【００７４】
次に、ファイル管理モジュール３５は、ＡＳＣＩＩ文字のみから構成される前記変換した１バイトコードの列に基づき、ＡＳＣＩＩ文字で構成されるショートファイル名を作成する（Ｓ２０４）。ショートファイル名の作成は、上記に例を示したように、従来と同様にして実行できる。
【００７５】
次に、ファイル管理モジュール３５は、前記作成したショートファイル名を前記書き込み要求を受けたファイルＸのショートファイル名として設定し、また必要に応じてファイル名Ｙをロングファイル名として設定して、ファイルシステム３６を介して記憶媒体１４にファイルＸを書き込む（Ｓ２０５）。
【００７６】
このように、本実施形態では、クライアント端末２６から、ユニコードで記述されたファイル名Ｙを指定したファイルＸの書き込み要求を受け付けた際に、ファイル名Ｙにユニコードハッシュ関数１０１を適用してＡＳＣＩＩ文字で構成されるショートファイル名を作成し、前記作成したショートファイル名を用いて記憶媒体１４にファイルＸを書き込む構成を採用している。
【００７７】
かかる構成によれば、上述したように、ユニコードハッシュ関数１０１は、ローカルコードに共通するコードを出力するハッシュ関数として機能するため、ファイル書き込みのためにローカルコードのコード体系ごとに変換テーブルを有する必要はなく、ローカルコードのコード体系を予め指定せずとも、ファイルシステム３６を介してファイルの書き込みを行うことができる。また、コード体系ごとの変換テーブルが不要となる結果、変換テーブルのために必要であったメモリ資源の消費を抑制することができ、また新しいコード体系に対応させるためのローカライズ作業も不要となる。
【００７８】
また、かかる構成のもと書き込まれたファイルＸは、そのショートファイル名がＡＳＣＩＩ文字のみから構成されるため、どのようなローカルコードのコード体系を採用するファイルシステムにおいても、ショートファイル名を同一の文字列として正しく読み出すことができる。
【００７９】
（変形例）
本発明は上記実施形態に限定されることなく、種々に変形して適用することが可能である。例えば、上記実施形態ではプリンタ１を例に説明しているが、本発明は、複写機、ファクシミリ、複合機などの印刷装置に対しても適用することができる。更に、クライアント端末からのファイル読み出し要求に応じて、ファイルシステムを介してファイルを読み出してクライアント端末に送信し、クライアント端末からのファイル書き込み要求に応じて、ファイルシステムを介してファイルを書き込む機能を備えた装置であれば、印刷装置以外の装置に対しても適用可能である。
【００８０】
また、上記実施形態では、ファイル読み出し処理において、記憶媒体１４に格納される各ファイルの変換後ショートファイル名を設定しているが、かかる各ファイルの変換後ショートファイル名を設定する処理を、ファイル読み出し処理とは別の処理として実行してもよい。
【００８１】
また例えば、上記実施形態では、ファイル読み出し処理において１バイトコード変換テーブル１００を用いてファイル名を変換する構成としているが、１バイトコード変換テーブル１００に代えて、１バイトコードハッシュ関数１０２を用いてファイル名を変換する構成としてもよい。
【００８２】
１バイトコードハッシュ関数１０２は、１バイトコード００〜ＦＦを入力とし、１文字分のユニコード（制御文字以外の一般の文字のユニコード）を出力するハッシュ関数である。１バイトコードハッシュ関数１０２の具体的態様、すなわち、各１バイトコードに対してどのようなユニコードを出力するかは、変換しようとしているショートファイル名が採用するローカルコードのコード体系に関係なく、設計に応じて定めることができる。
【００８３】
ただし、１バイトコード００〜７Ｆが入力された場合、ＡＳＣＩＩ文字のユニコードを出力するように、１バイトコードハッシュ関数１０２を構成することが望ましい。１バイトコード変換テーブル１００の場合と同様に、変換後ショートファイル名をＡＳＣＩＩ文字のみで構成することができ、ファイル書き込み時に作成するショートファイル名と共通性を持たせることができるからである。
【００８４】
また１バイトコードハッシュ関数１０２を適用してファイル名を変換する場合も、１バイトコード変換テーブル１００の場合と同様に、変換前後でファイル名の文字は一致しない可能性がある。しかし、１バイトコードハッシュ関数１０２を適用することで、１バイトコード００〜ＦＦ全てに対してユニコードが割り当てられるため、ユニコードが割り当てられていないローカルコードが存在する可能性のある各ローカルコードごとの変換テーブルを適用した場合とは異なり、必ずユニコードで記述された変換後ショートファイル名を設定することができる。
【００８５】
以下、図７を参照して、１バイトコードハッシュ関数１０２を用いる場合のファイル読み出し処理について説明する。
【００８６】
アクセス制御部３４は、クライアント端末２６から記憶媒体１４に関するファイル情報の要求を受信した場合、該要求をファイル管理モジュール３５に通知する（Ｓ３００）。
【００８７】
ファイル管理モジュール３５は、ファイル情報要求を受け付けた場合、ファイルシステム３６を介して、記憶媒体１４に格納される各ファイルについて、ショートファイル名のローカルコード列を取得する（Ｓ３０１）。
【００８８】
次に、ファイル管理モジュール３５は、記憶媒体１４に格納される各ファイルについて、前記取得したローカルコード列を１バイトコード列と見なした場合の各１バイトコードに１バイトコードハッシュ関数１０２を適用して、前記取得したローカルコード列をユニコード列に変換し、前記変換したユニコード列により該ファイルの変換後ショートファイル名を設定する（Ｓ３０２）。
【００８９】
次に、ファイル管理モジュール３５は、記憶媒体１４に格納される各ファイルについて前記設定した変換後ショートファイル名を含むファイル情報を作成し、クライアント端末２６に送信する（Ｓ３０３）。ファイル情報は、ロングファイル名が設定されているファイルについては、ロングファイル名のユニコード列を含んでいてもよい。また、ファイルサイズや作成日時などの情報を含んでいてもよい。
【００９０】
クライアント端末２６では、かかるファイル情報を受信した場合、該ファイル情報に基づき、変換後ショートファイル名等の一覧リストを表示部に表示する。ユーザは、かかる一覧リストを参照し、ファイル読み出しを指示することができる。クライアント端末２６では、ユーザからファイル読み出しの指示を受け付けた場合、指示されたファイルを変換後ショートファイル名等で指定したファイル読み出し要求を作成し、プリンタ１に送信する。
【００９１】
ファイル管理モジュール３５は、クライアント端末２６からファイル読み出し要求を受け付けた場合、まず前記ファイル読み出し要求において指定されたファイル名と、記憶媒体１４に格納される各ファイルのロングファイル名（設定されている場合）とを比較する（Ｓ３０４）。
【００９２】
ロングファイル名が一致するファイルがある場合、該ファイルをファイルシステム３６を介して記憶媒体１４から読み出して（Ｓ３０５）、クライアント端末２６に送信する（Ｓ３０６）。
【００９３】
一方、ロングファイル名が一致するファイルが無い場合、ファイル管理モジュール３５は、前記指定されたファイル名のユニコード列を取得し、記憶媒体１４に格納される各ファイルについて前記設定した変換後ショートファイル名のユニコード列を、前記指定されたファイル名のユニコード列と比較し（Ｓ３０７）、ユニコード列が一致したファイルをファイルシステム３６を介して記憶媒体１４から読み出して（Ｓ３０８）、クライアント端末２６に送信する（Ｓ３０６）。
【００９４】
これにより、クライアント端末２６は、ユーザが指示したファイルを取得することができる。
【００９５】
かかる構成によれば、ローカルコードのコード体系ごとに変換テーブルを有する必要はなく、ローカルコードのコード体系を予め指定せずとも、ファイルシステム３６を介してファイルの読み出しを行うことができる。
【図面の簡単な説明】
【００９６】
【図１】プリンタ１の外観を示す図である。
【図２】プリンタ１の構成を示すブロック図である。
【図３】ファイル管理モジュール３５の構成を示すブロック図である。
【図４】本発明の実施形態におけるファイル読み出し処理の流れを示すフローチャートである。
【図５】本発明の実施形態におけるファイル書き込み処理の流れを示すフローチャートである。
【図６】１バイトコード変換テーブル１００の例を示す図である。
【図７】本発明の変形例におけるファイル読み出し処理の流れを示すフローチャートである。
【符号の説明】
【００９７】
１…プリンタ、１４、１５、１６…記憶媒体、１７、１８、１９…スロット、２２、２５…ポート、２３…外部記憶装置、２６…クライアント端末、３０〜３３…スロット制御部、３４…アクセス制御部、３５…ファイル管理モジュール、３６…ファイルシステム、３７…印刷制御部、４０…印刷処理部、４１…情報処理部、１００…１バイトコード変換テーブル、１０１…ユニコードハッシュ関数、１０２…１バイトコードハッシュ関数
【図１】
2009140063.tif 000003
【図２】
2009140063.tif 000004
【図３】
2009140063.tif 000005
【図４】
2009140063.tif 000006
【図５】
2009140063.tif 000007
【図６】
2009140063.tif 000008
【図７】
2009140063.tif 000009