(57)【要約】【課題】ＦＴＰサーバが搭載されたＦＴＰ型処理装置において、プロトコルの拡張変更を何ら行うことなく処理装置のメディア接続部に接続された記憶メディアを、ホスト装置側から操作を行うことにある。【解決手段】ホスト装置からのネットワークを介したＦＴＰ通信によるコマンドに従い、ＦＴＰ型処理装置に搭載されているメディア接続部に接続された記憶メディアを単位とした操作に対応付けられた操作対応ファイル名を前記ホスト装置に送信し、操作対応ファイル名に対応する操作を実行する。【選択図】図３
2008210178.tif 000002
【特許請求の範囲】
【請求項１】
メディア接続部を備えたＦＴＰ型記憶装置であり、
ホスト装置からのネットワークを介したＦＴＰ通信によるコマンドに従い、前記メディア接続部に接続された記憶メディアに対し、少なくともファイル単位によるデータの読出し、書込みを行うＦＴＰサーバ手段を備え、
そのＦＴＰサーバ手段は、
前記記憶メディアを単位とした操作に対応付けられた操作対応ファイル名を前記ホスト装置に送信する操作対応ファイル名送信手段と、
前記操作対応ファイル名に対応する操作を実行する操作実行手段と、
を備えたことを特徴とするＦＴＰ型処理装置。
【請求項２】
前記ＦＴＰサーバ手段は、前記操作実行手段による操作結果を反映した名称を持つ操作結果反映ファイル名を前記ホスト装置に返信することを特徴とする請求項１記載のＦＴＰ型処理装置。
【請求項３】
前記ＦＴＰサーバ手段は、操作実行手段による操作結果を反映した実体データを決定し、操作結果反映ファイル名を持ったファイルへのアクセス要求を得たら、前記実体データを前期ホスト装置に返信することを特徴とする請求項１または２に記載のＦＴＰ型処理装置。
【請求項４】
前記ＦＴＰサーバ手段は、操作対応ファイル名を持つファイルが、記憶メディアの実体ディレクトリとは異なるディレクトリに存在するという情報を前記ホスト装置に送信することを特徴とする請求項１ないし３のいずれか１項に記載の記載のＦＴＰ型処理装置。
【請求項５】
前記ＦＴＰ型処理装置は、複数のメディア接続部が設けられ、前記操作対応ファイル名を、前記メディア接続部に接続された特定の記憶メディアに対して操作を実行するものとして決定する操作対応ファイル名決定手段を備えることを特徴とする請求項１ないし４のいずれか１項に記載の記載のＦＴＰ型処理装置。
【請求項６】
前記ＦＴＰ型処理装置は、前記メディア接続部に、種別の異なる前記記憶メディアを接続可能であり、前記操作対応ファイル名を、前記メディア接続部に接続された特定の種別の記憶メディアに対して操作を実行するものとして決定する操作対応ファイル名決定手段を備えることを特徴とする請求項１ないし５のいずれか１項に記載の記載のＦＴＰ型処理装置。
【請求項７】
前記ＦＴＰ型処理装置において、前記操作対応ファイル名は、前記メディア接続部に接続された記憶メディアのフォーマット操作に対応することを特徴とする請求項１ないし６のいずれか１項に記載の記載のＦＴＰ型処理装置。
【請求項８】
前記ＦＴＰ型処理装置において、前記操作対応ファイル名は、前記メディア接続部に接続された記憶メディアのファイル消去に対応することを特徴とする請求項１ないし７のいずれか１項に記載の記載のＦＴＰ型処理装置。
【請求項９】
前記ＦＴＰ型処理装置において、前記操作対応ファイル名は、前記メディア接続部に接続された記憶メディア間のファイルコピーに対応することを特徴とする請求項１ないし請求項８のいずれか１項に記載の記載のＦＴＰ型処理装置。
【請求項１０】
前記ネットワークを介して送信される印刷データに基づいて印刷を実行可能なネットワークプリンタに組み込まれてなることを特徴とする請求項１ないし請求項９のいずれか１項に記載の記載のＦＴＰ型処理装置。
【請求項１１】
ホスト装置と、メディア接続部を備え、前記ホスト装置からのネットワークを介したＦＴＰ通信によるコマンドに従い、前記メディア接続部に接続された記憶メディアに対し、少なくともファイル単位によるデータの読出し、書込みを行うＦＴＰサーバ手段を備えたＦＴＰ型処理装置と、からなり、
前記ＦＴＰ型処理装置は、前記記憶メディアを単位とした操作に対応付けられた操作対応ファイル名を決定する操作対応ファイル名決定手段と、前記操作対応ファイル名を前記ホスト装置に送信する操作対応ファイル名送信手段と、前記操作対応ファイル名に対応する操作を実行する操作実行手段と、を備え、
前記ホスト装置は、前記操作対応ファイル名を持ったファイルへアクセスすることと、
前記ＦＴＰ型処理装置から送信された前記操作対応ファイル名を表示装置に表示することを特徴とするＦＴＰシステム。
【請求項１２】
メディア接続部を備え、前記ホスト装置からのネットワークを介したＦＴＰ通信によるコマンドに従い、前記メディア接続部に接続された記憶メディアに対し、少なくともファイル単位によるデータの読出し、書込みを行うＦＴＰサーバ手段を備えたＦＴＰ型処理装置において、
前記記憶メディアを単位とした操作に対応付けられた操作対応ファイル名を前記ホスト装置に送信し、
前記ホスト装置より、前記操作対応ファイル名を持ったファイルへのアクセス要求を受けたことを条件として、前記操作対応ファイル名に対応する操作を実行するＦＴＰシステムの操作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＴＰ型記憶装置、そのＦＴＰ型処理装置とホスト装置とからなるＦＴＰシステム、および、その操作方法に関する。
【背景技術】
【０００２】
【特許文献１】特開２００３−１７７９８７号公報
【０００３】
ＦＴＰ（File Transfer Protocol）にて、ファイルを転送する仕組みは従来より知られている（例えば、特許文献１参照）。
【０００４】
また、近年、フラッシュメモリなどの不揮発性メモリがカード型にパッケージングされたいわゆるメモリーカード（記憶メディアの一例）が広く知られている。このメモリーカードは、デジタルカメラや携帯音楽プレーヤーなどのデジタル機器に用いられるデータの記憶媒体として急速に普及している。メモリーカードの仕様は統一されておらず、例えば、コンパクトフラッシュ（登録商標、以下「ＣＦ」と略称する）、スマートメディア（登録商標、以下「ＳＭ」と略称する）、メモリースティック（登録商標、以下「ＭＳ」と略称する）、ＳＤメモリーカード（登録商標、以下「ＳＤ」と略称する）など、種々のものが市場に出回っている。
【０００５】
ＰＣなどはメモリーカードの読み書きをも行うメモリーカードリーダライタ（以下「リーダライタ」と略称する）と通信することで、リーダライタに接続された上記メモリーカードへのアクセスが可能となる。近年ではこうしたリーダライタを搭載した印刷装置なども普及しており、例えば、ＪＰＥＧ形式等で保存された画像データファイルを書き込んだメモリーカードをリーダライタに接続することで、ＰＣを経由せずに画像を直接印刷できるようになっている。
【０００６】
ＰＣなどにＦＴＰクライアントプログラムをインストールしておき、カードリーダ側にＦＴＰサーバプログラムを搭載しておけば、デジタルカメラやカメラつき携帯電話の撮影画像データファイルの保存先として使用されるメモリーカードをリーダライタに接続することで、そのメモリーカードに保存されているデータファイルをＦＴＰによりＰＣへ転送することができる。つまり、リーダライタをＰＣの外付けＦＴＰ型記憶装置として利用することが可能である。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、ＦＴＰにおいては、ＦＴＰサーバが記憶メディア（リムーバブルメディア、以下、単にメディアともいう）を取り扱うことを前提としたプロトコル設計がなされていない。従って、上記のようなＦＴＰ型記憶装置（或いはそれを搭載したプリンタなどの周辺デバイス）にＦＴＰサーバを搭載した場合、ＦＴＰプロトコルそのものに準拠しただけのクライアントからは、メディアをフォーマットしたり、メディア間でファイルをコピーしたりなど、メディアそのものを操作したり、メディアを単位とした操作を直接行うことができなかった。
【０００８】
上記の問題点を解決する手法として、まず、メディアそのものやメディアを単位とした操作をＦＴＰプロトコルに準拠したクライアントから直接行えるよう、ＦＴＰプロトコル自体の拡張変更を行うことが考えられる。しかし、拡張変更を行った場合、既存のＦＴＰクライアントのユーザはその恩恵にあずかることはできない。また、プロトコルの拡張変更は、国際的な団体を通して承認を得る必要があり、現実的ではない。
【０００９】
本発明の課題は、プロトコルの拡張変更を行うことなくＦＴＰプロトコルに準拠したクライアントからＦＴＰサーバ上のメディアそのものやメディアを単位とした操作を直接行えるようにすることにある。
【課題を解決する手段】
【００１０】
上記の課題を解決する為に、請求項１のＦＴＰ型処理装置は、メディア接続部を備えたＦＴＰ型記憶装置であり、ホスト装置からのネットワークを介したＦＴＰ通信によるコマンドに従い、前記メディア接続部に接続された記憶メディアに対し、少なくともファイル単位によるデータの読出し、書込みを行うＦＴＰサーバ手段を備え、そのＦＴＰサーバ手段は、前記記憶メディアを単位とした操作に対応付けられた操作対応ファイル名を前記ホスト装置に送信する操作対応ファイル名送信手段と、前記操作対応ファイル名に対応する操作を実行する操作実行手段と、を備えたことを特徴とする。
【００１１】
請求項２のＦＴＰ型処理装置は、請求項１記載のＦＴＰ型処理装置において、前記操作実行手段による操作結果を反映した名称を持つ操作結果反映ファイル名を前記ホスト装置に返信するＦＴＰサーバ手段を備えることを特徴とする。
【００１２】
請求項３のＦＴＰ型処理装置は、請求項１または請求項２に記載のＦＴＰ型処理装置において、前記操作実行手段による操作結果を反映した実体データを決定し、操作結果反映ファイル名を持ったファイルへのアクセス要求を得たら、前記実体データを前期ホスト装置に返信するＦＴＰサーバ手段を備えることを特徴とする。
【００１３】
請求項４のＦＴＰ型処理装置は、請求項１ないし請求項３に記載のＦＴＰ型処理装置において、操作対応ファイル名を持つファイルが、記憶メディアの実体ディレクトリとは異なるディレクトリに存在するという情報を前記ホスト装置に送信するＦＴＰサーバ手段を備えることを特徴とする。
【００１４】
請求項５のＦＴＰ型処理装置は、請求項１ないし請求項４に記載のＦＴＰ型処理装置において、複数のメディア接続部が設けられ、前記操作対応ファイル名を、前記メディア接続部に接続された特定の記憶メディアに対して操作を実行するものとして決定する操作対応ファイル名決定手段を備えることを特徴とする。
【００１５】
請求項６のＦＴＰ型処理装置は、請求項１ないし請求項５に記載のＦＴＰ型処理装置において、前記メディア接続部に、種別の異なる前記記憶メディアを接続可能であり、前記操作対応ファイル名を、前記メディア接続部に接続された特定の種別の記憶メディアに対して操作を実行するものとして決定する操作対応ファイル名決定手段を備えることを特徴とする。
【００１６】
請求項７のＦＴＰ型処理装置は、請求項１ないし請求項６に記載のＦＴＰ型処理装置において、前記操作対応ファイル名は、前記メディア接続部に接続された記憶メディアのフォーマット操作に対応することを特徴とする。
【００１７】
請求項８のＦＴＰ型処理装置は、請求項１ないし請求項７に記載のＦＴＰ型処理装置において、前記操作対応ファイル名は、前記メディア接続部に接続された記憶メディアのファイル消去に対応することを特徴とする。
【００１８】
請求項９のＦＴＰ型処理装置は、請求項１ないし請求項８に記載のＦＴＰ型処理装置において、前記操作対応ファイル名は、前記メディア接続部に接続された記憶メディア間のファイルコピーに対応することを特徴とする。
【００１９】
請求項１０のＦＴＰ型処理装置は、請求項１ないし請求項９に記載のＦＴＰ型処理装置において、前記ネットワークを介して送信される印刷データに基づいて印刷を実行可能なネットワークプリンタに組み込まれてなることを特徴とする。
【００２０】
請求項１１のＦＴＰシステムは、  ホスト装置と、メディア接続部を備え、前記ホスト装置からのネットワークを介したＦＴＰ通信によるコマンドに従い、前記メディア接続部に接続された記憶メディアに対し、少なくともファイル単位によるデータの読出し、書込みを行うＦＴＰサーバ手段を備えたＦＴＰ型処理装置と、からなり、前記ＦＴＰ型処理装置は、前記記憶メディアを単位とした操作に対応付けられた操作対応ファイル名を前記ホスト装置に送信する操作対応ファイル名送信手段と、前記操作対応ファイル名に対応する操作を実行する操作実行手段と、を備え、前記ホスト装置は、前記操作対応ファイル名を持ったファイルへアクセスすることと、前記ＦＴＰ型処理装置から送信された前記操作対応ファイル名を表示装置に表示することを特徴とする。
【００２１】
請求項１２のＦＴＰシステムの操作方法は、メディア接続部を備え、前記ホスト装置からのネットワークを介したＦＴＰ通信によるコマンドに従い、前記メディア接続部に接続された記憶メディアに対し、少なくともファイル単位によるデータの読出し、書込みを行うＦＴＰサーバ手段を備えたＦＴＰ型処理装置において、前記記憶メディアを単位とした操作に対応付けられた操作対応ファイル名を前記ホスト装置に送信し、前記ホスト装置より、前記操作対応ファイル名を持ったファイルへのアクセス要求を受けたことを条件として、前記操作対応ファイル名に対応する操作を実行することを特徴とする。
【課題を解決するための手段及び発明の効果】
【００２２】
請求項１のＦＴＰ型処理装置、請求項１１のＦＴＰシステム、請求項１２のＦＴＰシステムの操作方法によれば、ＦＴＰ型処理装置にはＦＴＰプロトコルに対応したＦＴＰサーバが備えられており、ホスト装置にはＦＴＰプロトコルに対応したＦＴＰクライアントが備えられている。ＦＴＰサーバは、ネットワークを介したＦＴＰ通信によるＦＴＰクライアントからのコマンドに従い、記憶メディアを単位とした操作に対応付けられた操作対応ファイル名を持つファイルの存在を示す情報（操作対応ファイル名を持つファイルを実際に存在させる必要はない、もちろん、存在させてもよい）をＦＴＰクライアントへ送信する。ＦＴＰクライアントは、ＦＴＰサーバから送信された情報に従って、操作対応ファイル名を持ったファイルへのアクセス要求を行う。アクセス要求を受けたＦＴＰサーバは、アクセス要求を受けた操作対応ファイル名に対応する操作を実行することで、メディアそのものやメディアを単位とした操作を直接行う。
【００２３】
すなわち、ＦＴＰプロトコルの拡張変更を行なうことなく、ＦＴＰプロトコルに準拠したクライアントからＦＴＰサーバ上のメディアそのものやメディアを単位とした操作を直接行えるようにできる。
【００２４】
請求項２のＦＴＰ型処理装置によれば、ユーザがＦＴＰサーバ上のメディアに対して行った操作結果を確認することができる。
【００２５】
請求項３のＦＴＰ型処理装置によれば、ユーザがＦＴＰサーバ上のメディアに対して行った操作結果をファイル名に与えられた制限に縛られることなく得ることができる。
【００２６】
請求項４のＦＴＰ型処理装置によれば、記憶メディアと操作対応ファイル名を持つファイルと異なる場所に配置されるため、ユーザがＦＴＰサーバ上の操作対応ファイル名を持つファイルに誤ってアクセスする可能性を抑えられる。
【００２７】
請求項５のＦＴＰ型処理装置によれば、ユーザは操作するメディアの種類を特定することができるため、意図したメディアに対して、容易に操作を行うことができる。
【００２８】
請求項６のＦＴＰ型処理装置によれば、ユーザは操作する記憶メディアの種類を特定することができるため、例えば、種類は異なるが、用いるスロットが同じメディアに対しても、意図したメディアに対して、容易に操作を行うことができる。
【００２９】
請求項７のＦＴＰ型処理装置によれば、ユーザはＦＴＰ型処理装置に接続された記憶メディアに対してフォーマット操作を行うことができる。
【００３０】
請求項８のＦＴＰ型処理装置によれば、ユーザはＦＴＰ型処理装置に接続された記憶メディアに対してファイル消去を行うことができる。
【００３１】
請求項９のＦＴＰ型処理装置によれば、ユーザはＦＴＰ型処理装置に接続された記憶メディアに対してファイルコピーを行うことができる。
【発明を実施するための最良の形態】
【００３２】
以下、添付の図面を参照しつつ、本発明の実施形態について説明する。なお、以下に説明するＦＴＰシステムの構成は、本発明を具現化するための単なる一例であり、本発明の要旨を変更しない範囲で構成を適宜変更できることは当然である。図１は、上記ＦＴＰシステム１の概略構成を示すブロック図である。ＦＴＰシステム１は、プリンタ８０と、該プリンタ８０をネットワークプリンタとして使用するホスト装置（パーソナルコンピュータ：以下、「ＰＣ］ともいう）３とがネットワーク４１０にて通信可能にされている。
【００３３】
なお、ネットワーク４１０は、図示したような有線のネットワークでもよいし、無線のネットワークでもよい。
【００３４】
図２は、プリンタ８０の外観構成を示すものである。該プリンタ８０は、いわゆる多機能装置（ＭＦＰ：Multi Function Peripheral）であり、ＦＴＰ型処理装置をなすマルチリーダライタ２をプリンタに組み込んだプリンタ複合機として構成されている。具体的には、装置前面にメディア接続用スロット（以下、単に「スロット」ともいう）１６〜１９が露出するように配設されたマルチリーダライタ２とを一体的に備えてなり、プリンタ機能、スキャナ機能、コピー機能及びファクシミリ機能などを有する。
【００３５】
なお、メディア接続用スロットに代えて、あるいは併設して、ＵＳＢ接続部を備え、記憶メディアとしてのＵＳＢメモリが接続できる構成でもよいし、無線接続部を備え、記憶メディアとしての無線機能を持ったメモリーカードを接続できる構成でもよい。
【００３６】
プリンタ８０は、ＰＣ３とネットワーク接続されて、ＰＣ３とマルチリーダライタ２に挿入されたメモリーカードとの間でデータ通信を行なうリーダライタ装置として機能する。また、ＰＣ３（図１）から送信された印刷データに基づき、画像や文書を所定の用紙に印刷する。また、マルチリーダライタ２によってメモリーカード（記憶メディア）から読み取られた印刷データに基づいても、画像や文書を所定の用紙に印刷する（直接印刷）。また、スキャナ部により読み取られた画像データをＰＣ３へ送信したり、スキャナ部で読み取った画像を、印刷部を用いてコピーしたりすることも可能である。
【００３７】
プリンタ８０のマルチリーダライタ２は、図２に示すように、メディア接続用スロット１６〜１９として、第１メモリーカード１１を挿入するための第１スロット１６と、第２メモリーカード１２を挿入するための第２スロット１７と、第３メモリーカード１３を挿入するための第３スロット１８と、第４メモリーカード１４を挿入するための第４スロット１９とを備えている。また、その他のメモリーカード（ｘＤピクチャーカード（登録商標、以下「ＸＤ」と略称する）など）のスロットを備える構成としてもよい。
【００３８】
図３は、上記プリンタ８０の電気的構成を示すブロック図である。プリンタ８０は、その内部に、各構成部を制御するＣＰＵ３４と、制御プログラムや種々のデータ等を格納するＲＯＭ３５（本実施形態では、フラッシュメモリ等の不揮発性メモリにて構成している）と、ＣＰＵ３４による演算の作業領域となるＲＡＭ３７と、がバス３３を介して相互にデータ転送が可能なように接続されている。また、バス３３には、フラッシュメモリ制御用ＬＳＩを介して各スロット１６〜１９が接続されている。これらスロット１６〜１９に着脱可能に接続される各第１〜第４メモリーカード１１〜１４は、例えば、ＣＦ、ＳＭ、ＭＳ、ＳＤなど、データの書込み、書き換え、消去、読出しなどが可能なフラッシュメモリを搭載したカード型記憶メディアである。なお、上記のスロット１６〜１９は、いずれかの種類のメモリーカードを択一的に接続可能である。
【００３９】
バス３３には、印刷部８２、スキャナ部１３２、電話線Ｉ／Ｆ１３３、ＬＣＤ、キーボード及びカーソル移動キーなどからなる操作・表示部９１が繋がれている。さらに、バス３３には、ＬＡＮＩ／Ｆ２４が接続されている。ＬＡＮＩ／Ｆ２４は、第一のネットワークを介してホスト装置であるＰＣ３と接続している。複数のＰＣ３及びプリンタ８０はＴＣＰ／ＩＰネットワーク４１０にて相互接続されている（図１参照）。
【００４０】
ＲＯＭ３５には、マルチリーダライタ２の動作制御プログラム及び、印刷制御、スキャン制御、ＦＡＸ通信制御などを司る各々の制御プログラムが格納され、ＣＰＵ３４は、これらプログラムを、ＲＡＭ３７を実行エリアとして実行することで、プリンタ複合機としての総合的な動作制御を行なう。
【００４１】
ＲＯＭ３５にはさらに、ＦＴＰサーバプログラムが格納されている。また、ＴＣＰ／ＩＰネットワーク４１０上にてプリンタ８０が特定されるためのＩＰアドレス及びサブネットマスクもＲＯＭ３５に記憶されている。さらに、操作対応ファイル名決定プログラム、操作実行プログラムもＲＯＭ３５に記憶されている。
【００４２】
メディア接続用スロット１６〜１９には、メモリーカード（記憶メディア）１１〜１４が接続される。また、ＰＣ３は、ハードディスクなどからなるローカルディスク３Ｌと、液晶ディスプレイなどからなるモニタ３Ｍとを備え、ローカルディスク３Ｌには、ＦＴＰクライアントプログラムが組み込まれたブラウザがインストールされている。
【００４３】
プリンタ８０側では、前述した各々の制御プログラムと、状態反映ファイル名決定プログラム、及びＦＴＰサーバプログラムが、ＣＰＵ３４で実行されることにより、ＦＴＰサーバ手段、操作対応ファイル名決定手段、操作実行手段、がシステム上で実現されている。
【００４４】
以下、通信システム１におけるデータシーケンスを、図６のシーケンス図を用いて説明する。このシーケンス図は、ＰＣ３側でユーザがＦＴＰクライアント機能が組み込まれたブラウザを立ち上げ、図５に示すように、プリンタ８０のノード名「ftp://brn_a821ea」を入力し、アクセスを開始させたときに始まる。なお、ＰＣ３側にノード名「ftp://brn_a821ea」へのショートカットを用意しておき、そのショートカットを操作することで、ブラウザが起動後そのままプリンタ８０へアクセスするよう構成していてもよい。
【００４５】
まず、ＰＣ３（ＦＴＰクライアント）はプリンタ８０（ＦＴＰサーバ）にアクセスするために、ＦＴＰに割り当てられた２１番ポートにてコネクトする（Ｊ１）。プリンタ８０はＰＣ３に対しユーザ名要求レスポンスを送信する（Ｊ２）。ＰＣ３はこれを受けてプリンタ８０にＦＴＰサーバにログインするためのユーザ名を送信する（Ｊ３）。
【００４６】
次に、プリンタ８０からＰＣ３にパスワード要求レスポンスを送信する（Ｊ４）。そして、該パスワード要求レスポンスを受けたＰＣ３からプリンタ８０に、該ホスト装置にて入力されたパスワードを送信する（Ｊ５）。プリンタ８０では、受信したパスワードとユーザ名とに基づいてログインユーザを認証し、認証受理の場合に該ログインユーザのＦＴＰサーバ（プリンタ８０）へのログインを許可する応答をＰＣ３へ返信する（Ｊ６）。
【００４７】
ＦＴＰサーバへのログインが許可されたＰＣ３は、続いて、ルートディレクトリへのアクセスを要求するコマンド「cd/ (change directory root)」を発行する（Ｊ７）。
このコマンドを受信したプリンタ８０は、ルートディレクトリへアクセスし（カレントディレクトリをルートディレクトリに変更することを試み）、成功したことを示すコードをＰＣ３へ返信する（Ｊ８）。
【００４８】
なお、ルートディレクトリへのアクセスに失敗すれば、前述したようにレスポンスコード「５５０」などが返信されることになる。この実施形態では、記憶メディアが未接続の状態でも、ルートディレクトリへのアクセスが成功したことを示すコードをＰＣ３へ返信するように工夫している。
【００４９】
ルートディレクトリへのアクセスが成功したことを示すコードを受信したＰＣ３は、このルートディレクトリに対するlistコマンドを発行する（Ｊ９）。listコマンドを受信したプリンタ８０は、メディア接続部の状態や、操作対応ファイル名決定プログラムによって決定された、操作対応ファイル名を有したファイルを含むディレクトリが、ルートディレクトリに存在している、との情報を送信する（Ｊ１０）。
【００５０】
この実施例では、ルートディレクトリに_CONTROLディレクトリが存在していないにもかかわらず、”存在している”という通知を行うこととする。この通知を受け取ったＰＣ３は通知どおり、ルートディレクトリに_CONTROLディレクトリが存在していることを示す表示を画面上に行う。表示例を図４に示す。
【００５１】
_CONTROLディレクトリの中にはユーザがメディアに対して操作を行うための操作対応ファイル名を持ったファイルが存在している通知をおこなう。
【００５２】
CARDROOTディレクトリの中には、各スロットに対応したディレクトリを配置し、名前をCF、MS、SD、SMとする。表示例を図５に示す。名前は、利用するメディアに対して任意につけてもよい。
【００５３】
また、各スロットに対応したディレクトリ名は、ＦＴＰサーバにがどのようなスロットを搭載しているかを検出し、その結果に従って決定する。ＦＴＰサーバが搭載するスロットが固定である場合は、そのスロットに対応した固定のディレクトリ名に決定してもよい。
【００５４】
さらに、プリンタ８０は、先に述べたlistコマンドへの応答として「CARDROOT」というディレクトリ名を持ったディレクトリが存在しているとの情報も送信している。この情報を受信したＰＣ３は、「CARDROOT」というディレクトリ名とアイコンを表示する。プリンタ８０は、このディレクトリ名を、記憶メディアの最上位ディレクトリを示すディレクトリ名として決定し、ＰＣ３へ送信している。ユーザがこのディレクトリを開くことに応じ、このディレクトリへのアクセスをＰＣ３が要求してきた場合（具体的には、「cd/CARDROOT」の送信とlistコマンドの送信が続けて行われる）、プリンタ８０は記憶メディアの最上位ディレクトリに記憶されているファイルのファイル名それぞれをＰＣ３に返信する。これを受信したＰＣは、図５で示すように、接続された記憶メディアを一覧表示することになる。
【００５５】
以下、フローチャート等を参照して、本発明の処理を説明する。
【００５６】
図７は、プリンタ８０におけるＣＰＵ３４がＦＴＰサーバプログラムに従って実行するＦＴＰサーバ処理の動作フローである。ＦＴＰサーバ処理は、プリンタ８０の起動に伴って動作が開始される。
【００５７】
図７で示すＦＴＰサーバ処理では、まず、仮想ディレクトリツリーの初期化処理を行い、ＦＴＰサーバ処理でＣＰＵが管理するディレクトリツリーをＲＡＭなどのメモリ上に形成する（Ｓ１００）。続いて、ＦＴＰポートのオープンなど、ＦＴＰサーバとしてネットワーク機器と接続するための準備を行う（Ｓ１１０）。続いてＦＴＰサーバとして、ファイルへのアクセス要求の受信、要求への応答などの定常動作処理を実行する（Ｓ１２０）。以降、プリンタ８０の電源が切断されたり、リセットなどが行われるまで、定常動作し続ける。
【００５８】
図８は、Ｓ１１０における仮想ディレクトリツリーの初期化処理を詳細に示したフローチャートである。まず、ＣＰＵ３４は、仮想ディレクトリツリーの構成を管理するために必要なメモリ、ＦＴＰサーバシステムを管理するために必要なメモリをＲＡＭなどに確保する（Ｓ２００）。
【００５９】
続いて、確保したメモリ上の仮想ディレクトリツリーに、ＦＴＰサーバのルートディレクトリ用の管理領域を確保する（Ｓ２０５）。続いて、確保したルートディレクトリ用の管理領域を初期化する。ここでは、ディレクトリ名称がないこと、ディレクトリの実体は、先に述べたシステム領域に存在すること、ディレクトリ内に格納されたファイルのファイル名はない（すなわち、ディレクトリ内にファイルがない）こと、サブディレクトリはない、という属性を管理領域に設定する（Ｓ２１０）。
【００６０】
続いて、確保したメモリ上の仮想ディレクトリツリーに、にサブディレクトリ１用の管理領域を確保する（Ｓ２１５）。
【００６１】
続いて、確保したサブディレクトリ１用の管理領域を初期化する。ここでは、ディレクトリ名称をCARDROOT、ディレクトリの実体はない、ディレクトリ内に格納されたファイルのファイル名はない（すなわち、ディレクトリ内にファイルがない）こと、サブディレクトリはない、という属性を管理領域に設定する（Ｓ２２０）。
【００６２】
続いて、確保したメモリ上の仮想ディレクトリツリーに、にサブディレクトリ２用の管理領域を確保する（Ｓ２２５）。
【００６３】
続いて、確保したサブディレクトリ２用の管理領域を初期化する。ここでは、ディレクトリ名称を_CONTROL、ディレクトリの実体はない、ディレクトリ内に格納されたファイルのファイル名はない（すなわち、ディレクトリ内にファイルがない）こと、サブディレクトリはない、という属性を管理領域に設定する（Ｓ２３０）。続いて、確保したメモリ上の仮想ディレクトリツリーに、にサブディレクトリ２−１〜２−４用の管理領域を確保する（Ｓ２３５）。
【００６４】
続いて、確保したサブディレクトリ２用の管理領域を初期化する。ここでは、ディレクトリ名称をＣＦ、ＭＳ、ＳＤ、ＳＭ、ディレクトリの実体はない、ディレクトリ内に格納されたファイルのファイル名は、Format＊＊MemoryCard.txt、EraseAllFilesIn＊＊MemoryCard.txt、EraseAllFilesExceptALastFileIn＊＊MemoryCard.txt（＊＊にはＣＦ、ＭＳ、ＳＤ、ＳＭ等の記憶メディアを表す文字列が入る）であり、サブディレクトリとしてそれぞれCARDCOPYを持つという属性を管理領域に設定する（Ｓ２４０）。
【００６５】
続いて、確保したメモリ上の仮想ディレクトリツリーに、にサブディレクトリ２−１−１〜２−４−１用の管理領域を確保する（Ｓ２４５）。
【００６６】
続いて、確保したサブディレクトリ２用の管理領域を初期化する。ここでは、ディレクトリ名称をCARDCOPY、ディレクトリの実体はない、ディレクトリ内に格納されたファイルのファイル名は、CopyAllFilesIn＊＊toCF.txt、CopyAllFilesIn＊＊toMS.txt、CopyAllFilesIn＊＊toSD.txt、CopyAllFilesIn＊＊toSM.txt（＊＊にはＣＦ、ＭＳ、ＳＤ、ＳＭ等の記憶メディアを表す文字列が入る）であり、サブディレクトリはないという属性を管理領域に設定する（Ｓ２５０）。
【００６７】
続いて、確保したルートディレクトリ用の管理領域を更新する。サブディレクトリ情報をサブディレクトリ１、サブディレクトリ２とすることで、CARDROOTと_CONTROLの二つのディレクトリがルートディレクトリ内において認識される。
【００６８】
続いて、先に述べたルートディレクトリがカレントディレクトリであると認識する（Ｓ２６０）。このように認識しておくことで、ＦＴＰサーバにアクセスしてきたＦＴＰクライアント（以下、クライアントとも呼ぶ）が、「cd /」することなくlistコマンドを送信してきた場合でも、プリンタ８０はカレントディレクトリであるルートディレクトリ内に存在するファイルのファイル名およびサブディレクトリ名を返信するようになる。
【００６９】
なお、図２２（ａ）は、仮想ディレクトリツリーの初期化処理によって構成される仮想ディレクトリツリーを示す概念図である。
【００７０】
図９は、図７の（Ｓ１２０）における定常動作処理を詳細に示したフローチャートである。まず、ＦＴＰサーバとしての初期化が終了すると、ＣＰＵ３４はクライアントからのログイン（図６：Ｊ１参照）を待つログインウェイト状態になる（Ｓ３００）。続いて、クライアントからのログインリクエストがなければ（Ｓ３１０：ＮＯ）、再びログインウェイト状態になる。クライアントからのログインリクエストがあれば（Ｓ３１０：ＹＥＳ）、ログインシーケンスを実行し（Ｓ３２０）（図６：Ｊ２〜Ｊ５参照）、ログインシーケンスが失敗ならば（Ｓ３３０：ＮＯ）、再びログインウェイト状態になる。
【００７１】
ログインシーケンスが成功ならば（Ｓ３３０：ＹＥＳ）、クライアントにログイン成功を示すコードを送信し（図６：Ｊ６参照）、クライアントからのＦＴＰコマンドを待つ、コマンドウェイト状態になる（Ｓ３４０）。
【００７２】
クライアントから「cd」コマンドがあれば（Ｓ３５０：ＹＥＳ）、コマンドに応じたcd処理を実行する（Ｓ３６０）。
【００７３】
クライアントから「list」コマンドがあれば（Ｓ３７０：ＹＥＳ）、コマンドに応じたlist処理を実行する（Ｓ３８０）。
【００７４】
クライアントから「get」コマンドがあれば（Ｓ３９０：ＹＥＳ）、コマンドに応じたget処理を実行する（Ｓ４００）。
【００７５】
クライアントから「put」コマンドがあれば（Ｓ４１０：ＹＥＳ）、コマンドに応じたput処理を実行する（Ｓ４２０）。
【００７６】
クライアントからのその他のコマンドがあれば、その他のコマンドに応じた処理を実行する（Ｓ４３０）。
【００７７】
それぞれの処理を実行するか、クライアントからコマンドがなければ、プリンタ８０のシャットダウン処理などで、プログラムを終了する指示がないか判断する（Ｓ４４０）。プログラムを終了する指示がなければ（Ｓ４４０：ＮＯ）、再びコマンドウェイト状態になり、プログラムを終了する指示があれば（Ｓ４４０：ＹＥＳ）、ＦＴＰサーバとしての機能を終了するシャットダウン処理を行い（Ｓ４５０）、定常動作を終了する。
【００７８】
図１０は、図９のＳ３６０におけるcd処理を詳細に示したフローチャートである。cd処理では、cdコマンドにより指定されたディレクトリを、カレントディレクトリとして認識する、換言すれば、カレントディレクトリを切り替える処理を行う。
【００７９】
まず、ＣＰＵ３４は、現在の装置状態に基づいて、仮想ファイル情報を作成する（Ｓ５００）。続いて、対象とするディレクトリをコマンドが指定していれば（Ｓ５１０：ＹＥＳ）、クライアントからコマンドによって指定されたディレクトリが、仮想ディレクトリツリーの中に存在するか、あるいは、実体ディレクトリの中に存在するかを判断する（Ｓ５２０）。指定されたディレクトリが、仮想ディレクトリツリーの中に存在する、または実体ディレクトリの中に存在する場合（Ｓ５２０：ＹＥＳ）は、指定されたディレクトリをカレントディレクトリであると認識し（Ｓ５３０）、コマンドが成功したことを示すＯＫコードをクライアントに送信し（Ｓ５４０）、cd処理を終了する。
【００８０】
なお、ＦＴＰサーバ処理においては、カレントディレクトリが認識しなおされない限りは、cdコマンドで指定されたディレクトリがカレントディレクトリとして認識され続けることになる。
【００８１】
指定されたディレクトリが、仮想ディレクトリツリーの中に存在せず、かつ、実体ディレクトリの中に存在しない場合（Ｓ５２０：ＮＯ）、指定されたディレクトリをカレントディレクトリであると認識せず、コマンドが失敗したことを示すＮＧコードをクライアントに送信し（Ｓ５５０）、cd処理を終了する。
【００８２】
一方、Ｓ５１０で、対象とするディレクトリをコマンドが指定していなければ（Ｓ５１０：ＮＯ）、コマンドは、カレントディレクトリを指定しているものであると認識し（Ｓ５６０）、Ｓ５３０以降の処理を実行する。
【００８３】
図１１は、図９のＳ３８０におけるlist処理を詳細に示したフローチャートである。list処理では、listコマンドにより指定されたディレクトリに存在するファイルのファイル名およびディレクトリのディレクトリ名を、クライアントに返信する、換言すれば、クライアントが指定したディレクトリ内のファイルおよびディレクトリのリストをクライアントに認識させる処理を行う。まず、ＣＰＵ３４は、現在の装置状態に基づいて、仮想ファイル情報を作成する（Ｓ６００）。続いて、対象とするディレクトリをコマンドが指定していれば（Ｓ６１０：ＹＥＳ）、クライアントからコマンドによって指定されたディレクトリが、仮想ディレクトリツリーの中に存在するか、あるいは、実体ディレクトリの中に存在するかを判断する（Ｓ６２０）。続いて、指定されたディレクトリが、仮想ディレクトリツリーの中に存在するか、あるいは、実体ディレクトリの中に存在する場合（Ｓ６２０：ＹＥＳ）、さらに、指定されたディレクトリの実体がシステム領域内であるか否かを判断する（Ｓ６３０）。指定されたディレクトリの実体がシステム領域内ならば（Ｓ６３０：ＹＥＳ）、指定されたディレクトリ用の管理領域に記憶されたファイル名およびサブディレクトリ名をクライアントに送信し（Ｓ６４０）、list処理を終了する。すなわち、プリンタ８０や、プリンタ８０に接続された記憶メディアの状態を示すファイル名など、本発明ならでは特別なファイル名をクライアントに送信する。
【００８４】
指定されたディレクトリの実体がシステム領域内でない、換言すれば、記憶メディアなどの記憶装置内にあるならば（Ｓ６３０：ＮＯ）、指定されたディレクトリに記憶されたファイル名およびサブディレクトリ名をクライアントに送信し（Ｓ６５０）、list処理を終了する。すなわち、記憶メディアなどに実際に記憶されているファイルおよびディレクトリのファイル名およびディレクトリ名を送信する。
【００８５】
指定されたディレクトリが、仮想ディレクトリツリーの中に存在せず、かつ、実体ディレクトリの中に存在しない場合（Ｓ６２０：ＮＯ）、コマンドが失敗したことを示すＮＧコードをクライアントに送信し（Ｓ６６０）、list処理を終了する。一方、Ｓ６１０で、対象とするディレクトリをコマンドが指定していなければ（Ｓ６１０：ＮＯ）、コマンドは、カレントディレクトリを指定しているものであると認識し（Ｓ６７０）、Ｓ６３０以降の処理を実行する。
【００８６】
図１２は、図９のＳ４００におけるget処理を詳細に示したフローチャートである。get処理では、getコマンドにより指定されたファイルの実体データを、クライアントに返信する、換言すれば、クライアントが指定したファイルの実体データをクライアントに取得させる処理を行う。まず、ＣＰＵ３４は、現在の装置状態に基づいて、仮想ファイル情報を作成する（Ｓ７００）。続いて、対象とするファイルをコマンドが指定しているかどうかを判断する（Ｓ７１０）。対象とするファイルが指定されていれば、どこのディレクトリ内のファイルを対象としているか（対象とするディレクトリはどこか）をコマンドが指定しているかどうかを判断する（Ｓ７２０）。
【００８７】
対象とするディレクトリをコマンドが指定していれば（Ｓ７２０：ＹＥＳ）、クライアントからコマンドによって指定されたディレクトリが、仮想ディレクトリツリーの中に存在するか、あるいは、実体ディレクトリの中に存在するかを判断する（Ｓ７３０）。
【００８８】
指定されたディレクトリが、仮想ディレクトリツリーの中に存在するか、あるいは、実体ディレクトリの中に存在する場合（Ｓ７３０：ＹＥＳ）、さらに、指定されたディレクトリの実体がシステム領域内であるか否かを判断する（Ｓ７４０）。指定されたディレクトリの実体がシステム領域内ならば（Ｓ７４０：ＹＥＳ）、指定されたディレクトリ用の管理領域に記憶された情報に基づいて、メモリーカードの操作処理を行う（Ｓ７５０）。ファイルの実体データを取得できたならば（Ｓ７６０：ＹＥＳ）、クライアントに実体データを送信し（Ｓ７７０）、get処理を終了する。
【００８９】
ファイルの実体データを取得できなかったならば（Ｓ７６０：ＮＯ）、コマンドが失敗したことを示すＮＧコードをクライアントに送信し（Ｓ７８０）、get処理を終了する。
【００９０】
指定されたディレクトリの実体がシステム領域内でない、換言すれば、記憶メディアなどの記憶装置内であるならば（Ｓ７４０：ＮＯ）、指定されたディレクトリに記憶されたファイルの実体データを取得し（Ｓ７９０）、Ｓ７６０以降の処理を実行する。すなわち、記憶メディアなどに実際に記憶されているファイルの実体データを送信する。
【００９１】
指定されたディレクトリが、仮想ディレクトリツリーの中に存在せず、かつ、実体ディレクトリの中に存在しない場合（Ｓ７３０：ＮＯ）、コマンドが失敗したことを示すＮＧコードをクライアントに送信し（Ｓ７８０）、get処理を終了する。一方、Ｓ７２０で、対象とするディレクトリをコマンドが指定していなければ（Ｓ７２０：ＮＯ）、コマンドは、カレントディレクトリ内のファイルを対象として指定しているものであると認識し（Ｓ８００）、Ｓ７４０以降の処理を実行する。また、対象とするファイルをコマンドが指定していなければ（Ｓ７１０：ＮＯ）、コマンドが失敗したことを示すＮＧコードをクライアントに送信し（Ｓ７８０）、get処理を終了する。
【００９２】
図１３は図１２のＳ７５０におけるメモリーカード操作処理を示したフローチャートである。メモリーカード操作処理では指定されたファイルに従ってメモリーカードの操作（フォーマット、メモリーカード内のファイルの削除等）を行い、操作結果を記したファイルをクライアントに送信する。まず、ＣＰＵ３４は、指定されたファイルの種類を判別する。
【００９３】
指定されたファイルがFormat＊＊MemoryCard.txtであった場合（Ｓ９００：ＹＥＳ）、ＣＰＵ３４は＊＊で指定されたメモリーカードに対してフォーマット操作処理を行い（Ｓ９１０）、操作結果を記したtxtファイルの実体を取得し（Ｓ９１５）、メモリーカード操作処理を終了する。フォーマット操作処理に限らず、Ｓ９１５で取得されたファイルの実体は、Ｓ７７０にてクライアントに送信される。また、メモリーカード操作処理で指定するファイルのファイル名はこれに限らず適宜変更してもよい。
【００９４】
指定されたファイルがEraseAllFilesIn＊＊MemoryCard.txtであった場合（Ｓ９２０：ＹＥＳ）、ＣＰＵ３４は＊＊で指定されたメモリーカードに対して全ファイル削除操作処理を行い（Ｓ９２５）、操作結果を記したtxtファイルの実体を取得し（Ｓ９１５）、メモリーカード操作処理を終了する。また、メモリーカード操作処理で指定するファイルのファイル名はこれに限らず適宜変更してもよい。
【００９５】
指定されたファイルがEraseAllFilesExceptALastFileIn＊＊MemoryCard.txtであった場合（Ｓ９３０：ＹＥＳ）、ＣＰＵ３４は＊＊で指定されたメモリーカードに対して最新のファイルを除く全ファイル削除操作処理を行い（Ｓ９３５）、操作結果を記したtxtファイルの実体を取得し（Ｓ９１５）、メモリーカード操作処理を終了する。また、メモリーカード操作処理で指定するファイルのファイル名はこれに限らず適宜変更してもよい。
【００９６】
指定されたファイルがCopyAllFiles＊＊to○○MemoryCard.txt（＊＊、○○にはＣＦ、ＭＳ、ＳＤ、ＳＭ等の記憶メディアを表す文字列が入る）であった場合（Ｓ９４０：ＹＥＳ）、ＣＰＵ３４は＊＊で指定されたメモリーカードから○○で指定されたメモリーカードに対してコピー操作処理を行い（Ｓ９４５）、操作結果を記したtxtファイルの実体を取得し（Ｓ９１５）、メモリーカード操作処理を終了する。また、メモリーカード操作処理で指定するファイルのファイル名はこれに限らず適宜変更してもよい。
【００９７】
指定されたファイルがCopyAllFilesIn＊＊toAllInsertedMemoryCards.txtであった場合（Ｓ９５０：ＹＥＳ）、ＣＰＵ３４は＊＊で指定されたメモリーカードからメディア接続用スロット１６〜１９に接続されている全メモリーカードに対してコピー操作処理を行い（Ｓ９５５）、操作結果を記したtxtファイルの実体を取得し（Ｓ９１５）、メモリーカード操作処理を終了する。また、メモリーカード操作処理で指定するファイルのファイル名はこれに限らず適宜変更してもよい。
【００９８】
指定されたファイルがファイル操作に定義づけられている操作対応ファイル名のいずれにも当てはまらなかった場合（Ｓ９５０：ＮＯ）、ＣＰＵ３４は指定のディレクトリ用の管理領域に記憶された情報に基づいてファイルの実体を取得する（Ｓ９６０）。その後、操作結果を記したtxtファイルの実体を取得し（Ｓ９１５）、メモリーカード操作処理を終了する。
【００９９】
図１４は図１３のＳ９１０におけるフォーマット操作処理を詳細に示したフローチャートである。まず、ＣＰＵ３４は、フォーマット対象となるメモリーカードが接続されているかどうかを判別する（Ｓ１０００）。メモリーカードが接続されていれば（Ｓ１０００：ＹＥＳ）、そのメモリーカードに対してフォーマット操作を行う。（Ｓ１０１０）フォーマットを開始したらフォーマット中であることを示すFormat＊＊MemoryCard.txtを生成し（Ｓ１０２０）、フォーマット操作処理を終了する。メモリーカードが接続されていなければ、（Ｓ１０００：ＮＯ）メモリーカードが接続されていないことを示すFormat＊＊MemoryCard.txtを生成し（Ｓ１０２０）、フォーマット操作処理を終了する。ここで、フォーマット終了を待たずにFormat＊＊MemoryCard.txtを生成し、フォーマット操作処理を終了しているため、getコマンドへの応答をクライアントへ短時間で返すことができ、クライアントがタイムアウトエラーとなることを防ぐことができる。Format＊＊MemoryCard.txtの内容の例を図１５（ａ）、図１５（ｂ）に示す。フォーマット操作が開始された場合の内容が図１５（ａ）、メモリーカードが接続されてない場合が図１５（ｂ）となる。
【０１００】
図１６は図１３のＳ９２０における全ファイル削除操作処理を詳細に示したフローチャートである。まず、ＣＰＵ３４は、全ファイル削除対象となるメモリーカードが接続されているかどうかを判別する（Ｓ１１００）。メモリーカードが接続されていれば（Ｓ１１００：ＹＥＳ）、そのメモリーカードに対して全ファイル削除を行う（Ｓ１１１０）。ＣＰＵ３４が、全ファイル削除を開始したら全ファイル削除を実行していることを示すEraseAllFilesIn＊＊MemoryCard.txtを生成し（Ｓ１１２０）、全ファイル削除処理を終了する。ここで、全ファイル削除の終了を待たずにEraseAllFilesIn＊＊MemoryCard.txtを生成し、フォーマット操作処理を終了しているため、getコマンドへの応答をクライアントへ短時間で返すことができ、クライアントがタイムアウトエラーとなることを防ぐことができる。メモリーカードが接続されていなければ、（Ｓ１１００：ＮＯ）メモリーカードが接続されていないことを示すEraseAllFilesIn＊＊MemoryCard.txtを生成し（Ｓ１１２０）、全ファイル削除処理を終了する。
【０１０１】
図１７は図１３のＳ９３０における最新のファイルを除く全ファイル削除操作処理を詳細に示したフローチャートである。まず、ＣＰＵ３４は、ファイル削除対象となるメモリーカードが接続されているかどうかを判別する（Ｓ１２００）。メモリーカードが接続されていれば（Ｓ１２００：ＹＥＳ）、そのメモリーカードに対して最新のファイルを除いて全ファイルの削除を行う（Ｓ１２１０）。最新のファイルを除く全ファイルの削除が開始されたら最新のファイルを除く全ファイルの削除を実行していることを示すEraseAllFilesExceptALastFile＊＊MemoryCard.txtを生成し（Ｓ１２２０）、最新のファイルを除く全ファイル削除操作処理を終了する。ここで、最新のファイルを除く全ファイル削除の終了を待たずにEraseAllFilesIn＊＊MemoryCard.txtを生成し、フォーマット操作処理を終了しているため、getコマンドへの応答をクライアントへ短時間で返すことができ、クライアントがタイムアウトエラーとなることを防ぐことができる。メモリーカードが接続されていなければ、（Ｓ１２００：ＮＯ）メモリーカードが接続されていないことを示すEraseAllFilesExceptALastFile＊＊MemoryCard.txtを生成し（Ｓ１２２０）、全ファイル削除処理を終了する。
【０１０２】
図１８は図１３のＳ９４０における＊＊から○○へのコピー操作処理を詳細に示したフローチャートである。まず、ＣＰＵ３４は、コピー元となるメモリーカードが接続されているかどうかを判別する（Ｓ１２５０）。メモリーカードが接続されていれば（Ｓ１２５０：ＹＥＳ）、ＣＰＵ３４はコピー先となるメモリーカードが接続されているかどうかを判別する（Ｓ１２６０）。コピー先となるメモリーカードが接続されていれば（Ｓ１２６０：ＹＥＳ）、コピー元のメモリーカードの内容をコピー先のメモリーカードにコピーする処理を開始する（Ｓ１２７０）。ＣＰＵ３４が、コピーを開始したらコピーを実行していることを示すCopyAllFilesIn＊＊to○○.txtを生成し（Ｓ１２８０）、＊＊から○○へのコピー操作処理を終了する。ここで、コピー処理の終了を待たずにCopyAllFilesIn＊＊to○○.txtを生成し、コピー操作処理を終了しているため、getコマンドへの応答をクライアントへ短時間で返すことができ、クライアントがタイムアウトエラーとなることを防ぐことができる。
【０１０３】
CopyAllFilesIn＊＊to○○.txtに書き込まれる操作結果の例としては、ＳＤカードが挿入されていない場合、「ＳＤカードが挿入されていません。挿入してから、このファイルを操作してください。」とすることや、＊＊から○○に対してコピーを行った場合に、「＊＊メモリーカードの内容を○○メモリーカードにコピーをしています。アクセスランプの点滅が点灯に変わるまでお待ちください。」とすること等があげられる。
【０１０４】
コピー元のメモリーカードが接続されていない（Ｓ１２５０：ＮＯ）、または、コピー先のメモリーカードが接続されていなければ（Ｓ１２６０：ＮＯ）、コピーできなかったことを示すCopyAllFilesIn＊＊to○○.txtを生成し（Ｓ１２８０）、＊＊から○○へのコピー操作処理を終了する。
【０１０５】
続いて、＊＊から全メモリカードへのコピー操作処理について説明する。＊＊を代表してＳＤカードから全メモリーカードへのコピー操作処理を行う場合を挙げる。
【０１０６】
図１９はＳＤカードから全メモリーカードへのコピー操作処理を詳細に示したフローチャートである。まず、ＣＰＵ３４は、各メモリーカードが接続されているかどうかを示す変数の値の初期化を行う（Ｓ１６００）。
【０１０７】
続いて、ＣＰＵ３４は、ＳＤカードが接続されているかどうかの判別を行う（Ｓ１６１０）。ＳＤカードが接続されていれば（Ｓ１６１０：ＹＥＳ）、ＳＤカードが接続されているかどうかを示す変数Flag_SDを１とする（Ｓ１６２０）。ＳＤカードが接続されていなければ、（Ｓ１６１０：ＮＯ）コピーできなかった旨を示すCopyAllFilesInSDtoAllInsertedMemoryCards.txtを生成し（Ｓ１６９０）、ＳＤカードから全メモリーカードへのコピー操作処理を終了する。
【０１０８】
続いて、ＣＰＵ３４は、ＣＦカードが接続されているかどうかの判別を行う（Ｓ１６３０）。ＣＦカードが接続されていれば（Ｓ１６３０：ＹＥＳ）、ＣＦカードが接続されているかどうかを示す変数Flag_CFを１とする（Ｓ１６４０）。
【０１０９】
続いて、ＣＰＵ３４は、ＭＳカードが接続されているかどうかの判別を行う（Ｓ１６５０）。ＭＳカードが接続されていれば（Ｓ１６５０：ＹＥＳ）、ＭＳカードが接続されているかどうかを示す変数Flag_MSを１とする（Ｓ１６６０）。
【０１１０】
続いて、ＣＰＵ３４は、ＳＭカードが接続されているかどうかの判別を行う（Ｓ１６５０）。ＳＭカードが接続されていれば（Ｓ１６７０：ＹＥＳ）、ＳＭカードが接続されているかどうかを示す変数Flag_SMを１とする（Ｓ１６８０）。
【０１１１】
続いて、ＣＰＵ３４は、各メモリーカードが接続されているかどうかを示す変数の値を確認する（Ｓ１７００）。まず、Flag_SDが１であるかどうかを確認する。Flag_SDが１であれば（Ｓ１７００：ＹＥＳ）、Flag_CFの内容を確認する。Flag_SDが１でなければ（Ｓ１７００：ＮＯ）ＣＰＵ３４は、ＳＤカードから全メモリーカードへのコピー操作処理を終了する。
【０１１２】
続いて、ＣＰＵ３４は、Flag_CFの内容を確認する（Ｓ１７１０）。Flag_CFが１であれば（Ｓ１７１０：ＹＥＳ）、ＳＤカードの内容のＣＦカードへのコピーを開始する（Ｓ１７２０）。Flag_CFが１でなければ（Ｓ１７１０：ＮＯ）ＣＰＵ３４は、コピーを行わずにFlag_MSの確認を行う。
【０１１３】
続いて、ＣＰＵ３４は、Flag_MSの確認を行う（Ｓ１７３０）。Flag_MSが１であれば（Ｓ１７３０：ＹＥＳ）、ＳＤカードの内容のＭＳカードへのコピーを開始する（Ｓ１７４０）。Flag_MSが１でなければ（Ｓ１７３０：ＮＯ）ＣＰＵ３４は、コピーを行わずにFlag_SMの確認を行う。
【０１１４】
続いて、ＣＰＵ３４は、Flag_SMの確認を行う（Ｓ１７５０）。Flag_SMが１であれば、ＳＤカードの内容のＳＭカードへのコピーを開始する（Ｓ１７６０）。Flag_SMが１でなければ（Ｓ１７５０：ＮＯ）ＣＰＵ３４は、コピーを行わずに次の処理へ移る。
【０１１５】
続いて、ＣＰＵ３４は、コピーを行ったメディア操作の履歴が記録されたCopyAllFilesInSDtoAllInsertedMemoryCards.txtを生成し（Ｓ１６９０）、ＳＤカードから全メモリーカードへのコピー操作処理を終了する。ここで、コピー処理の終了を待たずにCopyAllFilesInSDtoAllInsertedMemoryCards.txtを生成し、コピー操作処理を終了しているため、getコマンドへの応答をクライアントへ短時間で返すことができ、クライアントがタイムアウトエラーとなることを防ぐことができる。
【０１１６】
図１９ではＳＤから全メモリーカードへのコピー操作処理を例にあげたが、ＣＦカードをはじめとする他のメモリーカードからコピーする場合も同様の処理を行う。また、ＳＤカード、ＣＦカード、ＭＳカード、ＳＭカード以外のメディア（ＸＤカードなど）を用いてもよい。
【０１１７】
CopyAllFilesInSDtoAllInsertedMemoryCards.txtに書き込まれる操作結果の例としては、＊＊メモリーカードから○○メモリーカードと▲▲メモリーカード（＊＊、○○、▲▲にはＣＦ、ＭＳ、ＳＤ、ＳＭ等の記憶メディアを表す文字列が入る）へコピーを行った場合に、「＊＊メモリーカードの内容を○○メモリーカード、▲▲メモリーカードにコピーをしています。アクセスランプの点滅が点灯に変わるまでお待ちください。」とすること等があげられる。
【０１１８】
図２０は、図９のＳ４２０におけるput処理を詳細に示したフローチャートである。put処理では、クライアントからputコマンドにより送信されたファイルの実体データを、ＦＴＰサーバ内の記憶装置に記憶する、換言すれば、クライアントが指定したファイルの実体データをＦＴＰサーバに書き込ませる処理を行う。まず、ＣＰＵ３４は、現在の装置状態に基づいて、仮想ファイル情報を作成する（Ｓ１３００）。続いて、ファイルを記憶するディレクトリ（対象とするディレクトリ）をコマンドが指定しているかどうかを判断する（Ｓ１３１０）。対象とするディレクトリをコマンドが指定していれば（Ｓ１３１０：ＹＥＳ）、クライアントからコマンドによって指定されたディレクトリが、仮想ディレクトリツリーの中に存在するか、あるいは、実体ディレクトリの中に存在するかを判断する（Ｓ１３２０）。指定されたディレクトリが、仮想ディレクトリツリーの中に存在するか、あるいは、実体ディレクトリの中に存在する場合（Ｓ１３２０：ＹＥＳ）、さらに、指定されたディレクトリの実体がシステム領域内であるか否かを判断する（Ｓ１３３０）。指定されたディレクトリの実体がシステム領域内ならば（Ｓ１３３０：ＹＥＳ）、コマンドが失敗したことを示すＮＧコードをクライアントに送信し（Ｓ１３６０）、put処理を終了する。すなわち、プリンタ８０や、プリンタ８０に接続された記憶メディアの状態を示すファイル名をクライアントに送信するために設けられた、仮想的な特別なディレクトリへのアクセスができないようにする。これにより、ＰＣ３のユーザがファイルの実体データを書き込んだと思ったにもかかわらず、ディレクトリが仮想的なために書き込まれていなかった、という事態を防ぐことができる。
【０１１９】
指定されたディレクトリの実体がシステム領域内でない、換言すれば、記憶メディアなどの記憶装置内であるならば（Ｓ１３３０：ＮＯ）、指定されたディレクトリに実体データを記憶させ（Ｓ１３４０）、コマンドが成功したことを示すＯＫコードをクライアントに送信し（Ｓ１３５０）、put処理を終了する。すなわち、記憶メディアなどに実際に実体データを記憶する。一方、指定されたディレクトリが、仮想ディレクトリツリーの中に存在せず、かつ、実体ディレクトリの中に存在しない場合（Ｓ１３２０：ＮＯ）、コマンドが失敗したことを示すＮＧコードをクライアントに送信し（Ｓ１３６０）、put処理を終了する。
【０１２０】
一方、対象とするディレクトリをコマンドが指定していなければ（Ｓ１３１０：ＮＯ）、コマンドは、カレントディレクトリ内のファイルを対象として指定しているものであると認識し（Ｓ１３７０）、Ｓ９３０以降の処理を実行する。
【０１２１】
図２１は、図１０、図１１、図１２、図２０における仮想ファイル情報の作成処理を詳細に示したフローチャートである。
【０１２２】
仮想ファイル情報の作成処理では、プリンタ８０の装置状態（装置としての状態やＦＴＰサーバとしての状態を含む）やプリンタ８０に接続された記憶メディアの状態を確認し、状態を反映したファイル名やデータの内容を決定する、換言すれば、ＦＴＰクライアントにＦＴＰサーバ側の状態を知らせる情報の内容を決定する処理を行う。
【０１２３】
また、ここで、プリンタ８０の状態や、メディア接続部に接続された記憶メディアの状態を確認することから、メディア接続部に別の記憶メディアが接続されなおされていても、新たな記憶メディアの状態を反映できることから、操作対応ファイル名が接続されているメモリーカードに対応するため、誤ったファイルを選択することが少なくなる。
【０１２４】
ここで、処理の説明に戻る。
【０１２５】
ＣＰＵ３４は、まず、プリンタ８０の状態をチェックする（Ｓ１４００）。プリンタ８０が備えるメディア接続部の数や、メディア接続部に接続可能な記憶メディアの種類に関する情報も、この時取得する。
【０１２６】
続いて、変数Ｎに０を代入する（Ｓ１４１０）。このＮは、メディア接続部全てについての情報を確認するためにプログラム内で使われる変数である。
【０１２７】
次に、Ｎが、メディア接続部の数より少なければ（Ｓ１４２０：ＮＯ）、Ｎに１を加算する（Ｓ１４３０）。
【０１２８】
続いて、仮想ディレクトリツリー内に、サブディレクトリＮ（Ｎ番目のメディア接続部の状態を反映したファイルを仮想的に用意するためのサブディレクトリ）用の管理領域を確保する（Ｓ１４４０）。
【０１２９】
Ｎ番目のメディア接続部（以降、第Ｎスロットとも称する）に記憶メディアが接続されていれば（Ｓ１４５０：ＹＥＳ）、続いて、記憶メディアの種類を確認する（Ｓ１４６０）。
【０１３０】
続いて、第Ｎスロットのカードのフォーマットに対応するファイル名を決定する（Ｓ１４７０）。ファイル名は上記のフローチャートであげられた名前の他にも、ＦＴＰのルールに逸脱しない範囲で任意につけてもよい。
【０１３１】
続いて、第Ｎスロットに接続された記憶メディアがフォーマット済みかを確認する（Ｓ１４８０）。記憶メディアがフォーマット済みであれば（Ｓ１４８０：ＹＥＳ）、第Ｎスロットに接続された記憶メディアの総記憶容量と残り記憶容量を確認し（Ｓ１４９０）、記憶メディアの総記憶容量と残り記憶容量を示すファイル名を決定する（Ｓ１５００）。
【０１３２】
続いて、記憶メディアの総記憶容量と残り記憶容量を示す画像データを決定し、記憶メディアの総記憶容量と残り記憶容量を示すファイル名を持つファイルの実体データとして認識する（Ｓ１５１０）。
【０１３３】
続いて、第Ｎスロットに接続された記憶メディアの種類に基づいて、その種類の記憶メディアにアクセス可能であることを示すファイル名を決定する（Ｓ１５２０）。
【０１３４】
続いて、第Ｎスロット用の管理領域を初期化する（Ｓ１５４０）。ここでは、ディレクトリ名称が、記憶メディアの種類と何番目の記憶部かを示す名称である、ディレクトリの実体は、記憶部Ｎに接続された記憶メディアに存在する、という属性を管理領域に設定する。
【０１３５】
Ｓ１４５０で、第Ｎスロットに記憶メディアが接続されていない場合（Ｓ１４５０：ＮＯ）、第Ｎスロット用の管理領域を初期化する（Ｓ１５４０）。
【０１３６】
また一方、Ｓ１１７０で、第Ｎスロットに接続された記憶メディアがフォーマット済みでない場合（Ｓ１１７０：ＮＯ）、第Ｎスロット用の管理領域を初期化する（Ｓ１５４０）。
【０１３７】
続いて、ルートディレクトリの管理領域を更新する（Ｓ１５５０）。ここでは、ディレクトリ内に格納されたファイルのファイル名として、Ｓ１５００、Ｓ１５２０などで決定したファイル名を追加し、また、ディレクトリ内に格納されたサブディレクトリのディレクトリ名として、Ｓ１５４０で第Ｎスロット用の管理領域に記憶されたディレクトリ名を追加する。
【０１３８】
続いて、再びＳ１４２０に戻り、プリンタ８０のメディア接続部全てについて確認が終了する（Ｓ１４２０：ＹＥＳ）まで以上の処理を繰り返す。
【０１３９】
プリンタ８０のメディア接続部全てについて確認が終了したならば（Ｓ１４２０：ＹＥＳ）、全てのメディア接続部に関する状態を確認したことになるため、繰り返しから抜ける。
【０１４０】
そして、カレントディレクトリが仮想ディレクトリツリーの中に存在するか、あるいは、実体ディレクトリの中に存在するかどうかを確認する（Ｓ１５６０）。
【０１４１】
カレントディレクトリが仮想ディレクトリツリーの中に存在するか、あるいは、実体ディレクトリの中に存在するならば（Ｓ１５６０：ＹＥＳ）、その実体は前回の仮想ファイル情報の作成処理の時点と同じ実体かどうかを確認する（Ｓ１５７０）（実体が記憶メディアであるならば、前回の記憶メディアの識別子などを記憶しておき、現在のものと比較することなどが考えられる）。
【０１４２】
実体ディレクトリが前回と同じであれば（Ｓ１５７０：ＹＥＳ）、仮想ファイル情報の作成処理を終了する。
【０１４３】
一方、Ｓ１５６０で、指定されたディレクトリが、仮想ディレクトリツリーの中に存在せず、かつ、実体ディレクトリの中に存在しない場合（Ｓ１５６０：ＮＯ）、あるいは、Ｓ１５７０で、実体ディレクトリが前回と違っている場合（Ｓ１５７０：ＮＯ）、ルートディレクトリをカレントディレクトリであると認識し（Ｓ１５８０）、仮想ファイル情報の作成処理を終了する。
【０１４４】
図２２（ｂ）は「仮想ファイル情報の作成」実行後の仮想ディレクトリツリーを示したものである。サブディレクトリ内に存在するファイルにつけられたファイル名が操作対応ファイル名となる。
【０１４５】
図２３は「仮想ファイル情報の作成」実行後のシステム領域を示したものである。システム領域内に操作対応ファイルがそれぞれ確保されていることがわかる。
【０１４６】
図２４は図２２（ｂ）におけるサブディレクトリ２−１−１のＣＡＲＤＣＯＰＹの内部を示したものである。操作対応ファイル名をもった仮想ファイルが存在していることがわかる。他のサブディレクトリに関してもそれぞれのサブディレクトリに合わせて同様に仮想ファイルが配置される。
【０１４７】
また、図１４〜図１９のＳ１０２０、Ｓ１１２０、Ｓ１２２０、Ｓ１２８０、Ｓ１６９０において、操作結果を記したファイルを生成するとともに／または、操作結果を示すファイル名を決定してもよい。これにより、クライアントはＦＴＰサーバのディレクトリ情報を取得することで操作結果を知ることができる。図２５はＣＦが未接続であったときに、ＣＦのフォーマット操作を実行しようとした例である。
【０１４８】
なお、ＦＴＰ型処理装置の例として、プリンタ８０を示したが、スキャナ装置、ディスプレイ装置、オーディオ装置、カラオケ装置、デジタルカメラ装置、プロジェクタ装置、ディスクドライブ装置、ミシン、電話機、モバイル装置、工作用装置、ロボットなど、ＦＴＰサーバ機能を有し、メディア接続部を持ちうる構成の装置であればいずれに適用しても良いことは明らかである。
【図面の簡単な説明】
【０１４９】
【図１】本発明のＦＴＰシステムの全体構成の概略を示すブロック図。
【図２】本発明のＦＴＰシステムに適用されるプリンタの一例を示す斜視図。
【図３】プリンタ（カードリーダ）の電気的構成の一例を示すブロック図。
【図４】仮想ディレクトリの表示例。
【図５】接続された記憶メディアの一覧表示例。
【図６】本発明のＦＴＰシステムの動作の一例を示すシーケンス図。
【図７】プリンタ８０におけるＦＴＰサーバ処理を示したフローチャート。
【図８】プリンタ８０における仮想ディレクトリツリーの初期化処理を示したフローチャート。
【図９】プリンタ８０における定常動作処理を示したフローチャート。
【図１０】プリンタ８０におけるcd処理を示したフローチャート。
【図１１】プリンタ８０におけるlist処理を示したフローチャート。
【図１２】プリンタ８０におけるget処理を示したフローチャート。
【図１３】プリンタ８０におけるメモリーカード操作処理を示したフローチャート。
【図１４】プリンタ８０におけるフォーマット操作処理を示したフローチャート。
【図１５】プリンタ８０におけるFormat＊＊MemoryCard.txtの内容の例。
【図１６】プリンタ８０における全ファイル削除操作処理を示したフローチャート。
【図１７】プリンタ８０における最新のファイルを除く全ファイル削除操作処理を示したフローチャート。
【図１８】プリンタ８０におけるＳＤカードからＣＦカードへのコピー操作処理を示したフローチャート。
【図１９】プリンタ８０におけるＳＤカードから全メモリーカードへのコピー操作処理を示したフローチャート。
【図２０】プリンタ８０におけるput処理を示したフローチャート。
【図２１】プリンタ８０における仮想ファイル情報の作成処理のフローチャート。
【図２２】仮想ディレクトリツリーの例を示した図。
【図２３】「仮想ファイル情報の作成」実行後のシステム領域を示した図。
【図２４】プリンタ８０におけるサブディレクトリ２−１−１のＣＡＲＤＣＯＰＹの内部を示した図。
【図２５】ＣＦが未接続の場合にフォーマット操作を実行しようとしたときの状態表示例。
【符号の説明】
【０１５０】
１  ＦＴＰシステム、
２  マルチリーダライタ、
３  パーソナルコンピュータ、
３Ｌ  ローカルディスク、
３Ｍ  モニタ、
１１  第１メモリーカード（ＣＦ）、
１２  第２メモリーカード（ＳＭ）、
１３  第３メモリーカード（ＭＳ）、
１４  第４メモリーカード（ＳＤ）、
１６  メディア接続用スロット（第１スロット）、
１７  メディア接続用スロット（第２スロット）、
１８  メディア接続用スロット（第３スロット）、
１９  メディア接続用スロット（第４スロット）、
２４  ＬＡＮ Ｉ／Ｆ、
３３  バス、
３４  ＣＰＵ、
３５  ＲＯＭ、
３７  ＲＡＭ、
８０  プリンタ、
８２  印刷部、
９１  操作・表示部、
１５２  操作対応ファイル名を持つファイルのアイコン、
１５３  操作対応ファイル名、
４１０  ネットワーク
【図１】
2008210178.tif 000003
【図２】
2008210178.tif 000004
【図３】
2008210178.tif 000005
【図４】
2008210178.tif 000006
【図５】
2008210178.tif 000007
【図６】
2008210178.tif 000008
【図７】
2008210178.tif 000009
【図８】
2008210178.tif 000010
【図９】
2008210178.tif 000011
【図１０】
2008210178.tif 000012
【図１１】
2008210178.tif 000013
【図１２】
2008210178.tif 000014
【図１３】
2008210178.tif 000015
【図１４】
2008210178.tif 000016
【図１５】
2008210178.tif 000017
【図１６】
2008210178.tif 000018
【図１７】
2008210178.tif 000019
【図１８】
2008210178.tif 000020
【図１９】
2008210178.tif 000021
【図２０】
2008210178.tif 000022
【図２１】
2008210178.tif 000023
【図２２】
2008210178.tif 000024
【図２３】
2008210178.tif 000025
【図２４】
2008210178.tif 000026
【図２５】
2008210178.tif 000027