JP2006309536A - ファイル管理プログラム、及びファイル管理装置 - Google Patents
ファイル管理プログラム、及びファイル管理装置 Download PDFInfo
- Publication number
- JP2006309536A JP2006309536A JP2005131843A JP2005131843A JP2006309536A JP 2006309536 A JP2006309536 A JP 2006309536A JP 2005131843 A JP2005131843 A JP 2005131843A JP 2005131843 A JP2005131843 A JP 2005131843A JP 2006309536 A JP2006309536 A JP 2006309536A
- Authority
- JP
- Japan
- Prior art keywords
- directory
- cluster
- item
- cluster chain
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】 クラスタチェーンに関するソフトウェア処理の高速化を図ること。
【解決手段】 ディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドに、先頭クラスタに引き続くクラスタのクラスタ番号を記録するようにした。そのため、所定のディレクトリ内のファイルのディレクトリ項目やディレクトリのディレクトリ項目が複数のクラスタにまたがって記録されているときに(クラスタチェーンが生成されているときに)、前記ディレクトリ内から所望のファイルを検索する場合には、前記ディレクトリを示すディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドに記録されている情報を解析させることで、先頭クラスタに続くクラスタのクラスタ番号を取得することができる。そのため、クラスタチェーンの解析の高速化を図ることができ、その結果、前記所望ファイルの検索処理の改善を図ることができる。
【選択図】 図2
【解決手段】 ディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドに、先頭クラスタに引き続くクラスタのクラスタ番号を記録するようにした。そのため、所定のディレクトリ内のファイルのディレクトリ項目やディレクトリのディレクトリ項目が複数のクラスタにまたがって記録されているときに(クラスタチェーンが生成されているときに)、前記ディレクトリ内から所望のファイルを検索する場合には、前記ディレクトリを示すディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドに記録されている情報を解析させることで、先頭クラスタに続くクラスタのクラスタ番号を取得することができる。そのため、クラスタチェーンの解析の高速化を図ることができ、その結果、前記所望ファイルの検索処理の改善を図ることができる。
【選択図】 図2
Description
本発明は、FATファイルシステムに基づいて、ファイルやディレクトリのディレクトリ項目を記録するファイル管理プログラム、及びファイル管理装置に関する。
従来、ファイル管理プログラムとしては、例えば、マイクロソフト社のオペレーティングシステム(Windows(登録商標)やMS-DOS(登録商標)) に搭載されたファイルシステム、つまり、FAT(File Allocation Table)ファイルシステムが知られている(例えば、特許文献1参照)。この特許文献1に記載されているファイル管理プログラムにあっては、新しいファイルやディレクトリが生成されるたびに、その生成されたファイル等のディレクトリ項目を、当該ファイル等を格納しているディレクトリに対応するクラスタ領域に記録することで、前記ファイル等を管理するようになっている。
また、この特許文献1に記載されているようなファイル管理プログラムにあっては、一般に、それらファイル等のディレクトリ項目の記録に使用される領域の合計サイズが1つのクラスタ領域のサイズより小さい場合には、ディレクトリ項目を1つのクラスタ領域に記録する。また、その合計サイズが、1つのクラスタのサイズより大きくなった場合には、それまでのクラスタ領域に引き続く(リンクする)クラスタ領域を新しく確保し、その新しく確保されたクラスタ領域に継続してディレクトリ項目を記録する。なお、クラスタ領域が新しく確保された場合には、その新しく確保されたクラスタ領域のクラスタ番号のリンク状態を、クラスタチェーンとして、FATに記録するようになっている。
そして、所望のファイル等を検索する場合には、まず、当該ファイル等を格納しているディレクトリに対応するクラスタ領域群の先頭クラスタを、サブディレクトリ指示項目に基づいて読み出し、その先頭クラスタ内のディレクトリ項目に対して検索処理を開始する。また、先頭クラスタ内の全てのディレクトリ項目に対して検索処理が行われると、その検索処理を中断させ、FATを参照してクラスタチェーンを解析し、先頭クラスタに引き続くクラスタ領域を特定する。そして、その特定されたクラスタ領域を読み出し、その読み出されたクラスタ領域内のディレクトリ項目に対して検索処理を再開する。
特開平6−309207号公報
しかしながら、上記従来のファイル管理プログラムにあっては、クラスタチェーンがあるときに、ファイル等を検索する場合には、検索処理の途中でFATによるクラスタチェーンの解析処理を行うようになっているため、例えば、低消費電力化や小型化といった要求のために、ハードウエア性能に厳しい制約がある組み込み機器に適用した場合、多くの時間が掛かってしまい、その結果、検索に要する時間が増大してしまう恐れがあった。
本発明は、上記従来技術の未解決の問題点を解決することを目的とするものであって、クラスタチェーンに関するソフトウェア処理(ファームウェア処理)を高速化することが可能なファイル管理プログラム、及びファイル管理装置を提供することを課題とする。
上記課題を解決するために、本発明のファイル管理プログラムは、FATファイルシステムに基づき、各ディレクトリに関するディレクトリ項目をクラスタチェーンを用いて記録するファイル管理プログラムであって、前記ディレクトリ項目を格納しているクラスタを示すクラスタチェーン情報を、当該クラスタチェーン情報を記録するためのディレクトリクラスタチェーン項目に記録する記録機能をコンピュータに実行させることを特徴とする。
また、前記ディレクトリクラスタチェーン項目から前記クラスタチェーン情報を取得する情報取得機能をコンピュータに実行させるようにしてもよい。
一方、上記課題を解決するために、本発明のファイル管理装置は、FATファイルシステムに基づき、各ディレクトリに関するディレクトリ項目をクラスタチェーンを用いて記録するファイル管理装置であって、前記ディレクトリ項目を格納しているクラスタを示すクラスタチェーン情報を、当該クラスタチェーン情報を記録するためのディレクトリ項目に記録する記録手段を備えたことを特徴とする。
一方、上記課題を解決するために、本発明のファイル管理装置は、FATファイルシステムに基づき、各ディレクトリに関するディレクトリ項目をクラスタチェーンを用いて記録するファイル管理装置であって、前記ディレクトリ項目を格納しているクラスタを示すクラスタチェーン情報を、当該クラスタチェーン情報を記録するためのディレクトリ項目に記録する記録手段を備えたことを特徴とする。
また、前記ディレクトリクラスタチェーン項目から前記クラスタチェーン情報を取得する情報取得手段を備えるようにしてもよい。
このような構成によれば、例えば、所定のディレクトリ内のファイルやサブディレクトリのディレクトリ項目が複数のクラスタ領域にまたがって記録されているとき(クラスタチェーンがあるとき)に、クラスタチェーンの解析が必要な処理を行う場合には、ディレクトリクラスタチェーン項目のフィールド値を解析させることで、クラスタチェーン情報を取得させることができる。そのため、例えば、FATを参照してクラスタチェーンを解析させることでクラスタチェーン情報を取得させる方法に比べ、クラスタチェーンに関するソフトウェア(ファームウェア)処理の高速化(改善)を図ることが可能である。
このような構成によれば、例えば、所定のディレクトリ内のファイルやサブディレクトリのディレクトリ項目が複数のクラスタ領域にまたがって記録されているとき(クラスタチェーンがあるとき)に、クラスタチェーンの解析が必要な処理を行う場合には、ディレクトリクラスタチェーン項目のフィールド値を解析させることで、クラスタチェーン情報を取得させることができる。そのため、例えば、FATを参照してクラスタチェーンを解析させることでクラスタチェーン情報を取得させる方法に比べ、クラスタチェーンに関するソフトウェア(ファームウェア)処理の高速化(改善)を図ることが可能である。
以下、本発明のファイル管理プログラムの実施形態として、画像データを生成可能なCCDカメラ等の撮像ユニットを備える携帯端末に適用した例を図面に基づいて説明する。
即ち、この携帯端末1にあっては、撮像ユニットで画像データが生成されると、指定されたディレクトリを示すサブディレクトリ指示項目によって示されるクラスタ(先頭クラスタ)内に、前記生成された画像データのファイルのファイル名のディレクトリ項目を記録できるだけの領域が残っているか否かを判定する。残っていない場合には、前記先頭クラスタに引き続く新しいクラスタを確保し、その新しく確保されたクラスタのクラスタ番号を示すフィールド値をディレクトリクラスタチェーン項目(本発明で新しく設けた項目)のクラスタチェーン情報フィールドに記録し、また、ファイル名のディレクトリ項目を前記新しく確保されたクラスタに記録する。そして、この携帯端末1にあっては、クラスタチェーンの解析が必要な処理を実行するときに、FATを解析することなく、処理対象であるファイルが記録されているディレクトリに対応するディレクトリクラスタチェーン項目を解析することで、前記処理を効率的に実行することができる。
即ち、この携帯端末1にあっては、撮像ユニットで画像データが生成されると、指定されたディレクトリを示すサブディレクトリ指示項目によって示されるクラスタ(先頭クラスタ)内に、前記生成された画像データのファイルのファイル名のディレクトリ項目を記録できるだけの領域が残っているか否かを判定する。残っていない場合には、前記先頭クラスタに引き続く新しいクラスタを確保し、その新しく確保されたクラスタのクラスタ番号を示すフィールド値をディレクトリクラスタチェーン項目(本発明で新しく設けた項目)のクラスタチェーン情報フィールドに記録し、また、ファイル名のディレクトリ項目を前記新しく確保されたクラスタに記録する。そして、この携帯端末1にあっては、クラスタチェーンの解析が必要な処理を実行するときに、FATを解析することなく、処理対象であるファイルが記録されているディレクトリに対応するディレクトリクラスタチェーン項目を解析することで、前記処理を効率的に実行することができる。
<携帯端末の構成>
図1は、本実施形態の携帯端末の内部構成を示すブロック図である。この図1に示すように、携帯端末1は、撮像ユニット2、文字入力ユニット3、メモリーカードユニット4、表示ユニット5、I/F(InterFace)6、CPU(Central Processing Unit)7、RAM(Random Access Memory)8及びROM(Read Only Memory)9を含んで構成される。そして、携帯端末1は、撮像ユニット2、文字入力ユニット3、メモリーカードユニット4及び表示ユニット5を除く各部が、バス10で互いに接続される。
図1は、本実施形態の携帯端末の内部構成を示すブロック図である。この図1に示すように、携帯端末1は、撮像ユニット2、文字入力ユニット3、メモリーカードユニット4、表示ユニット5、I/F(InterFace)6、CPU(Central Processing Unit)7、RAM(Random Access Memory)8及びROM(Read Only Memory)9を含んで構成される。そして、携帯端末1は、撮像ユニット2、文字入力ユニット3、メモリーカードユニット4及び表示ユニット5を除く各部が、バス10で互いに接続される。
撮像ユニット2は、背面側の平面視上部に配され、CCDカメラ(不図示)を含んで構成される。そして、撮像ユニット2は、所定の操作がされると、被写体の画像データをCCDカメラで生成し、その画像データをI/F6経由でCPU7に出力する。
また、文字入力ユニット3は、前面側の平面視下部に配され、任意の文字列を入力可能なキーボード(不図示)を含んで構成される。そして、文字入力ユニット3は、そのキーボードから入力される文字列の情報をI/F6経由でCPU7に出力する。
また、文字入力ユニット3は、前面側の平面視下部に配され、任意の文字列を入力可能なキーボード(不図示)を含んで構成される。そして、文字入力ユニット3は、そのキーボードから入力される文字列の情報をI/F6経由でCPU7に出力する。
さらに、メモリーカードユニット4は、平面視左端部に配され、電力供給を停止してもデータを保持可能な不揮発性のメモリーカード(不図示)が着脱可能に構成される。そして、メモリーカードユニット4は、CPU7からファイル格納指令(後述)が出力されると、CPU7で生成されたファイル(後述)をメモリーカードに記録する。
また、メモリーカードユニット4は、CPU7からディレクトリ項目記録指令(後述)が出力されると、後述するようにCPU7で生成されるフィールド値をディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドに記録し、また、CPU7で生成されるファイル名のディレクトリ項目をメモリーカードに記録する。さらに、メモリーカードユニット4は、CPU7からI/F6経由でディレクトリ項目読出指令(後述)が出力されると、そのディレクトリ項目読出指令で指定されるファイルのファイル名のディレクトリ項目を、メモリーカードから読み出してI/F6経由でCPU7に出力する。
また、メモリーカードユニット4は、CPU7からディレクトリ項目記録指令(後述)が出力されると、後述するようにCPU7で生成されるフィールド値をディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドに記録し、また、CPU7で生成されるファイル名のディレクトリ項目をメモリーカードに記録する。さらに、メモリーカードユニット4は、CPU7からI/F6経由でディレクトリ項目読出指令(後述)が出力されると、そのディレクトリ項目読出指令で指定されるファイルのファイル名のディレクトリ項目を、メモリーカードから読み出してI/F6経由でCPU7に出力する。
さらに、表示ユニット5は、前面側の平面視中央部に配され、任意の画像を表示可能な表示装置(不図示)を含んで構成される。そして、表示ユニット5は、CPU7からI/F6経由で処理結果が出力されると、その出力された処理結果を表示装置に表示させる。
また、I/F6は、携帯端末1が備える各ユニット2〜5間や、各ユニット2〜5とCPU7との間で授受されるデータを受信側2〜5、7が読込可能な形式に変換する。
また、I/F6は、携帯端末1が備える各ユニット2〜5間や、各ユニット2〜5とCPU7との間で授受されるデータを受信側2〜5、7が読込可能な形式に変換する。
さらに、CPU7は、ROM9に記録されている基本制御プログラム(OS:Operating System)や、アプリケーションプログラム等の各種プログラムを読み出し、それら読み出された各種プログラムを実行して、携帯端末1が備える各部2〜9を制御する。
また、CPU7は、撮像ユニット2から画像データが出力されると、その出力された画像データのファイルを生成する。また、CPU7は、その生成されたファイル(以下、「新生成ファイル」とも呼ぶ。)を記録するディレクトリのファイルパス、及び新生成ファイルのファイル名として文字入力ユニット3から文字列の情報が入力されると、その新生成ファイルをメモリーカードに記録させる指令(以下、「ファイル格納指令」とも呼ぶ。)をI/F6経由でメモリーカードユニット4に出力し、また同時に、書き込み処理(後述)を実行する。そして、CPU7は、書き込み処理が実行されると、ファイル名のディレクトリ項目を記録できるだけの領域が、前記ディレクトリを示すサブディレクトリ指示項目が示すクラスタに残っているか否かを判定する。前記領域が残っていない場合には、前記ディレクトリ項目を記録可能な空きクラスタのクラスタ番号を示すフィールド値をディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドに記録させ、さらに、前記ファイル名のディレクトリ項目を記録させるディレクトリ項目記録指令をI/F6経由でメモリーカードユニット4に出力してから、この演算処理を終了する。
また、CPU7は、撮像ユニット2から画像データが出力されると、その出力された画像データのファイルを生成する。また、CPU7は、その生成されたファイル(以下、「新生成ファイル」とも呼ぶ。)を記録するディレクトリのファイルパス、及び新生成ファイルのファイル名として文字入力ユニット3から文字列の情報が入力されると、その新生成ファイルをメモリーカードに記録させる指令(以下、「ファイル格納指令」とも呼ぶ。)をI/F6経由でメモリーカードユニット4に出力し、また同時に、書き込み処理(後述)を実行する。そして、CPU7は、書き込み処理が実行されると、ファイル名のディレクトリ項目を記録できるだけの領域が、前記ディレクトリを示すサブディレクトリ指示項目が示すクラスタに残っているか否かを判定する。前記領域が残っていない場合には、前記ディレクトリ項目を記録可能な空きクラスタのクラスタ番号を示すフィールド値をディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドに記録させ、さらに、前記ファイル名のディレクトリ項目を記録させるディレクトリ項目記録指令をI/F6経由でメモリーカードユニット4に出力してから、この演算処理を終了する。
具体的には、ディレクトリクラスタチェーン項目は、図2に示すように、インデックスフィールド、クラスタチェーン情報フィールド、予約フィールド、属性フィールド、及びチェックサムフィールドで構成される。
インデックスフィールドには、ディレクトリクラスタチェーン項目の番号(何番目のディレクトリクラスタチェーン項目であるのかを示す番号)を16進数表記したものを設定する。なお、最後のディレクトリクラスタチェーン項目には、ディレクトリクラスタチェーン項目の終端を示すビット(ビット7)を設定する。そのため、このビットを、ファームウェアの内部処理のチェックフラグとして利用でき、安全性を高めることができる。
インデックスフィールドには、ディレクトリクラスタチェーン項目の番号(何番目のディレクトリクラスタチェーン項目であるのかを示す番号)を16進数表記したものを設定する。なお、最後のディレクトリクラスタチェーン項目には、ディレクトリクラスタチェーン項目の終端を示すビット(ビット7)を設定する。そのため、このビットを、ファームウェアの内部処理のチェックフラグとして利用でき、安全性を高めることができる。
クラスタチェーン情報フィールドには、サブディレクトリ識別項目の先頭クラスタ番号フィールドのフィールド値が示すクラスタ(先頭クラスタ)に引き続くクラスタのクラスタ番号を16進数表記したものを設定する。なお、クラスタチェーン情報フィールドの領域は、FAT32では4バイト(32ビット)、FAT16では2バイト(16ビット)、FAT12では3バイト(24ビット、注:フィールド情報は2個分が入る(12ビット×2))とする。また、クラスタチェーン情報フィールドの数(ディレクトリ項目に記録可能なクラスタの数)は、FAT32では6個、FAT16では13個、FAT12では16個(8個のフィールドに2情報)とする。
予約フィールドには、FATファイルシステムのロングファイルネーム項目(VFAT動作時に、ロングファイルネームを表すディレクトリ項目)と同じものを設定する。
属性フィールドには、このディレクトリ項目が、クラスタチェーン項目であることを示す情報(例えば、「0x0F&0x40」)を設定する。なお、ロングファイルネーム項目の属性フィールドには、フィールド値「0x0F」が設定される。
属性フィールドには、このディレクトリ項目が、クラスタチェーン項目であることを示す情報(例えば、「0x0F&0x40」)を設定する。なお、ロングファイルネーム項目の属性フィールドには、フィールド値「0x0F」が設定される。
チェックサムフィールドには、ショートファイルネームを表すディレクトリ項目のチェックサムと一致しない数値「0x00」を設定する。なお、ロングファイルネーム項目のチェックサムフィールドには、通常、前記チェックサムと一致する数値が設定される。
したがって、VFATが搭載されていない動作環境では、属性フィールドの下位4ビット「0x0F」により、このディレクトリ項目は無視される。なお、本実施形態では、属性フィールドに「0x0F&0x40」を設定する例を示したが、これに限られるものではなく、ディレクトリクラスタチェーン項目であることを示す他の情報でもよい。
したがって、VFATが搭載されていない動作環境では、属性フィールドの下位4ビット「0x0F」により、このディレクトリ項目は無視される。なお、本実施形態では、属性フィールドに「0x0F&0x40」を設定する例を示したが、これに限られるものではなく、ディレクトリクラスタチェーン項目であることを示す他の情報でもよい。
また同様に、VFATが搭載されている動作環境にあっても、チェックサムフィールドのフィールド値(ショートファイルネームを表すディレクトリ項目のチェックサムと一致しないフィールド値「0x00」)により、このディレクトリ項目は無視される。
また、CPU7は、メモリーカードに記録されている複数のファイルに、クラスタチェーンの解析が必要な処理を実行するために、処理対象となるファイルのファイルパスとして文字入力ユニット3から文字列の情報が入力されると読み込み処理(後述)を実行する。そして、CPU7は、読み込み処理が実行されると、ディレクトリ項目読出指令をI/F6経由でメモリーカードユニット4に出力して、各ファイルのファイル名のディレクトリ項目をメモリーカードから順次読み出す。また、CPU7は、その読み出されたディレクトリ項目に基づいて前記処理を実行し、その処理結果を表示ユニット5に表示させてから、この読み込み処理を終了する。なお、読み込み処理の実行中に、先頭クラスタからファイル名のディレクトリ項目を全て読み出し終えた場合には、ディレクトリクラスタチェーン項目を読み出し、そのディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドのフィールド値を読み出す。そして、その読み出されたフィールド値が示すクラスタ番号に記録されているファイル名のディレクトリ項目を読み出す。
また、CPU7は、メモリーカードに記録されている複数のファイルに、クラスタチェーンの解析が必要な処理を実行するために、処理対象となるファイルのファイルパスとして文字入力ユニット3から文字列の情報が入力されると読み込み処理(後述)を実行する。そして、CPU7は、読み込み処理が実行されると、ディレクトリ項目読出指令をI/F6経由でメモリーカードユニット4に出力して、各ファイルのファイル名のディレクトリ項目をメモリーカードから順次読み出す。また、CPU7は、その読み出されたディレクトリ項目に基づいて前記処理を実行し、その処理結果を表示ユニット5に表示させてから、この読み込み処理を終了する。なお、読み込み処理の実行中に、先頭クラスタからファイル名のディレクトリ項目を全て読み出し終えた場合には、ディレクトリクラスタチェーン項目を読み出し、そのディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドのフィールド値を読み出す。そして、その読み出されたフィールド値が示すクラスタ番号に記録されているファイル名のディレクトリ項目を読み出す。
さらに、RAM8は、CPU7で実行される各種プログラムを展開するためのワークエリアと、それら各種プログラムの実行時に用いられるデータを記録するためのメモリ領域とを形成する。そして、RAM8は、CPU7から読み出し要求が出力されると、RAM8に記録されているデータから当該読み出し要求に応じたデータをCPU7に出力する。
また、ROM9は、CPU7で実行される各種プログラムとデータとを記録する。そして、ROM9は、CPU7から読み出し要求が出力されると、ROM9に記録されているプログラムやデータから当該読み出し要求に応じたプログラム等をCPU7に出力する。
また、ROM9は、CPU7で実行される各種プログラムとデータとを記録する。そして、ROM9は、CPU7から読み出し要求が出力されると、ROM9に記録されているプログラムやデータから当該読み出し要求に応じたプログラム等をCPU7に出力する。
<携帯端末の動作>
次に、CPU7で実行される書き込み処理を、図3のフローチャートに従って説明する。この書き込み処理は、新生成ファイルを記録するディレクトリのファイルパス、及び新生成ファイルのファイル名の組み合わせとして、文字入力ユニット3から文字列の情報が入力されると実行される。そして、この演算処理が実行されると、まず、そのステップS101で、FATファイルシステムの規格に従い、前記入力された文字列の情報に基づいて、前記新生成ファイルのファイル名のディレクトリ項目(ファイル項目、ロングファイルネームが指定された場合は、ロングファイルネーム項目)を生成する。そして、その生成されたディレクトリ項目を、前記ディレクトリを示すサブディレクトリ指示項目の先頭クラスタ番号フィールドに記録されているフィールド値が示すクラスタ(先頭クラスタ)に記録させる指令をメモリーカードユニット4に出力する。なお、前記先頭クラスタに、前記ディレクトリ項目を記録できるだけの領域が残っていない場合には、前記先頭クラスタに引き続く新しいクラスタを確保し、その確保されたクラスタに当該ディレクトリ項目を記録させる指令を出力する。また、その際、実際に確保したクラスタのクラスタ番号を一時的なバッファに記録する。
次に、CPU7で実行される書き込み処理を、図3のフローチャートに従って説明する。この書き込み処理は、新生成ファイルを記録するディレクトリのファイルパス、及び新生成ファイルのファイル名の組み合わせとして、文字入力ユニット3から文字列の情報が入力されると実行される。そして、この演算処理が実行されると、まず、そのステップS101で、FATファイルシステムの規格に従い、前記入力された文字列の情報に基づいて、前記新生成ファイルのファイル名のディレクトリ項目(ファイル項目、ロングファイルネームが指定された場合は、ロングファイルネーム項目)を生成する。そして、その生成されたディレクトリ項目を、前記ディレクトリを示すサブディレクトリ指示項目の先頭クラスタ番号フィールドに記録されているフィールド値が示すクラスタ(先頭クラスタ)に記録させる指令をメモリーカードユニット4に出力する。なお、前記先頭クラスタに、前記ディレクトリ項目を記録できるだけの領域が残っていない場合には、前記先頭クラスタに引き続く新しいクラスタを確保し、その確保されたクラスタに当該ディレクトリ項目を記録させる指令を出力する。また、その際、実際に確保したクラスタのクラスタ番号を一時的なバッファに記録する。
次にステップS102に移行して、前記ステップS101で新しく確保されたクラスタのクラスタ番号を、ディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドに設定する。
具体的には、クラスタチェーン情報フィールドには、前記ステップS101で一時的なバッファに記録しておいたクラスタ番号をディレクトリ項目の先頭から記録する。また、クラスタチェーンの終端が明確となるように、クラスタチェーンの終端に対応するクラスタ番号を記録しているフィールドより後のクラスタチェーン情報フィールドには、「オールFF」を記録する。なお、その際、ファイルシステムのフォーマット種別(FAT12、FAT16、FAT32)に応じて、各フィールドの配置フォーマットを設定する。
具体的には、クラスタチェーン情報フィールドには、前記ステップS101で一時的なバッファに記録しておいたクラスタ番号をディレクトリ項目の先頭から記録する。また、クラスタチェーンの終端が明確となるように、クラスタチェーンの終端に対応するクラスタ番号を記録しているフィールドより後のクラスタチェーン情報フィールドには、「オールFF」を記録する。なお、その際、ファイルシステムのフォーマット種別(FAT12、FAT16、FAT32)に応じて、各フィールドの配置フォーマットを設定する。
次にステップS103に移行して、ディレクトリクラスタチェーン項目の予約フィールド、属性フィールド、及びチェックサムフィールドにフィールド値を設定する。具体的には、予約フィールドには、ロングファイルネーム項目と同じフィールド値を設定する。また、属性フィールドには、「0x0F&0x40」を設定する。そして、チェックサムフィールドには、「0x00」を設定する。
次にステップS104に移行して、ディレクトリクラスタチェーン項目が引き続くか否かを判定する。具体的には、前記ディレクトリのクラスタチェーンが長く、1個のディレクトリクラスタチェーン項目では後続するクラスタ番号を記録しきれないか否かを判定する。そして、1個のディレクトリクラスタチェーン項目では記録しきれない場合には、ステップS105に移行し、記録できる場合には、ステップS106に移行する。
前記ステップS105では、ディレクトリクラスタチェーン項目のインデックスフィールドのフィールド値を設定し、また、新しいクラスタチェーン項目を生成した後、前記ステップS102に移行する。なお、その際、ディレクトリクラスタチェーン項目がセクタ領域の先頭に記録されていた場合、つまり、新しいディレクトリクラスタチェーン項目を記録可能な空き領域がない場合には、次のセクタに生成する。また、当該次のセクタが、クラスタ領域の最終セクタである場合には、新しいクラスタ領域を確保して生成するクラスタアロケート処理を行う。
なお、新しく生成したディレクトリクラスタチェーン項目を記録するタイミングとしては、例えば、生成のたびに記録するようにしてもよいし、最後に一括して記録するようにしてもよく、このファイルシステムが実装される製品の仕様に応じて設定すればよい。
一方、前記ステップS106では、ディレクトリクラスタチェーン項目のインデックスフィールドにフィールド値とビット7とを設定する。
一方、前記ステップS106では、ディレクトリクラスタチェーン項目のインデックスフィールドにフィールド値とビット7とを設定する。
次にステップS107に移行して、前記ステップS102〜S106で設定されたフィールド値を、ディレクトリクラスタチェーン項目の各フィールドに記録させる指令(以下、「ディレクトリ項目記録指令」とも呼ぶ。)をメモリーカードユニット4に出力する。
次にステップS108に移行して、FATファイルシステムの規格に従い、通常のファイルシステム処理を実行してから、この演算処理を終了する。
次にステップS108に移行して、FATファイルシステムの規格に従い、通常のファイルシステム処理を実行してから、この演算処理を終了する。
次に、CPU7で実行される読み込み処理を、図4のフローチャートに従って説明する。この読み込み処理は、メモリーカードに記録されている複数のファイルに、クラスタチェーンの解析が必要な処理を実行するために、処理対象となるファイルが記録されているディレクトリのファイルパスとして文字入力ユニット3から文字列の情報が入力されると実行される処理であって、まず、そのステップS201で、文字入力ユニット3から情報が入力された文字列(ファイルパス)のディレクトリを指示するサブディレクトリ指示項目を読み出してCPU7に出力させる指令(以下、「ディレクトリ項目読出指令」とも呼ぶ。)をI/F6経由でメモリーカードユニット4に出力する。
次にステップS202に移行し、ディレクトリクラスタチェーン項目、あるいは後述するステップS205で特定されたディレクトリクラスタチェーン項目の属性フィールドのフィールド値が「0x4F」であることを確認する。
次にステップS203に移行して、ディレクトリクラスタチェーン項目、あるいは後述するステップS205で特定されたクラスタチェーン項目の先頭のクラスタチェーン情報フィールドから順番にフィールド値を取得する。なお、その際、「オールFF」が記録されているフィールドの前までが有効なクラスタチェーン情報である。また、ファイルシステムのフォーマット種別に応じてディレクトリクラスタチェーン項目の各フィールドはフォーマットが異なるので、そのフォーマット種別を参照して、各クラスタチェーン情報フィールドからクラスタチェーン情報を取得する。
次にステップS203に移行して、ディレクトリクラスタチェーン項目、あるいは後述するステップS205で特定されたクラスタチェーン項目の先頭のクラスタチェーン情報フィールドから順番にフィールド値を取得する。なお、その際、「オールFF」が記録されているフィールドの前までが有効なクラスタチェーン情報である。また、ファイルシステムのフォーマット種別に応じてディレクトリクラスタチェーン項目の各フィールドはフォーマットが異なるので、そのフォーマット種別を参照して、各クラスタチェーン情報フィールドからクラスタチェーン情報を取得する。
次にステップS204に移行して、ディレクトリクラスタチェーン項目が引き続くか否かを判定する。具体的には、ディレクトリクラスタチェーン項目のインデックスフィールドにディレクトリクラスタチェーン項目の終端を示すビット(ビット7)が記録されていないか否かを判定する。そして、ディレクトリクラスタチェーン項目の終端を示すビットが記録されていない場合には(Yes)ステップS205に移行し、記録されている場合には(No)ステップS206に移行する。
前記ステップS205では、ディレクトリクラスタチェーン項目に引き続くディレクトリクラスタチェーン項目を特定してから、前記ステップS202に移行する。なお、その際、ディレクトリクラスタチェーン項目がセクタ領域の先頭に記録されていた場合には、次のセクタから特定する。また、当該セクタがクラスタ領域の最終セクタである場合には、次のクラスタから特定する。
一方、前記ステップS206では、FATファイルシステムの規格に従い、通常のファイルシステム処理を実行し、その処理結果をI/F6経由で表示ユニットに出力してから、この演算処理を終了する。なお、その際、クラスタチェーンの情報が必要となった場合には、上記フローで取得したフィールド値を参照し、FATの走査処理は一切行わない。
<携帯端末の具体的動作>
次に、本実施形態の携帯端末1の動作を具体的状況に基づいて詳細に説明する。
<ファイルの生成>
まず、被写体の画像データが撮像ユニット2のCCDカメラで生成されたとする。すると、図1に示すように、撮像ユニット2によって、その生成された画像データがCPU7に出力され、CPU7によって、その画像データのファイルが生成される。
次に、本実施形態の携帯端末1の動作を具体的状況に基づいて詳細に説明する。
<ファイルの生成>
まず、被写体の画像データが撮像ユニット2のCCDカメラで生成されたとする。すると、図1に示すように、撮像ユニット2によって、その生成された画像データがCPU7に出力され、CPU7によって、その画像データのファイルが生成される。
次いで、その生成されたファイル(新生成ファイル)を記録するディレクトリのファイルパス(メモリーカード内の任意のディレクトリのファイルパス)、及び新生成ファイルのファイル名の組み合わせとして、利用者が文字入力ユニット3のキーボードから文字列を入力したとする。すると、CPU7によって、ファイル格納指令がI/F6経由でメモリーカードユニット4に出力される。そして、メモリーカードユニット4によって、前記生成された新生成ファイルが前記サブディレクトリに格納される。
また同時に、CPU7によって、書き込み処理が実行され、その際、前記ファイル名を記録するためのディレクトリ項目を記録可能な領域が、前記ディレクトリを示すサブディレクトリ指示項目の先頭クラスタ番号フィールドが示すクラスタ(先頭クラスタ)内になかったとする。すると、図3に示すように、まずそのステップS101で、FATファイルシステムの規格に従い、前記入力された文字列の情報に基づいて、前記新生成ファイルのファイル名のディレクトリ項目が生成される。そして、メモリーカードユニット4によって、前記先頭クラスタに引き続くクラスタ(クラスタ番号100)が確保され、また、前記生成されたディレクトリ項目が前記確保されたクラスタに記録される。
また、ステップS102で、前記確保されたクラスタのクラスタ番号100が、図5に示すように、ディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドに設定される。さらに、ステップS103で、前記ディレクトリクラスタチェーン項目の予約フィールドに、ロングファイルネーム項目と同じフィールド値が設定され、属性フィールドにフィールド値「0x0F&0x40」が設定され、チェックサムフィールドにフィールド値「0x00」が設定される。そして、ステップS104の判定が「No」となり、ステップS106で、前記ディレクトリクラスタチェーン項目のインデックスフィールドにフィールド値とビット7とが設定される。
そして、ステップS107で、ディレクトリ項目記録指令がI/F6経由でメモリーカードユニット4に出力され、メモリーカードユニット4によって、上記フローで設定されたフィールド値それぞれが、前記ディレクトリクラスタチェーン項目の各フィールドに記録され、ステップS108で、通常のファイルシステム処理が実行される。
<ファイルの処理>
また、上記フローが繰り返し実行され、複数のファイルがメモリーカード内に記録された後に、メモリーカード内に記録されている所定のディレクトリ内の複数のファイルに、クラスタチェーンの解析が必要な処理を実行するために、処理対象となるファイルが記録されているディレクトリのファイルパスとして利用者が文字入力ユニット3から文字列の情報を入力したとする。すると、CPU7によって、読み込み処理が実行され、図4に示すように、まず、そのステップS201で、ディレクトリ項目読出指令がI/F6経由でメモリーカードユニット4に出力される。そして、メモリーカードユニット4によって、前記利用者によって指定されたファイルパスに対応するディレクトリのサブディレクトリ指示項目がメモリーカードから読み出されてCPU7に出力される。
また、上記フローが繰り返し実行され、複数のファイルがメモリーカード内に記録された後に、メモリーカード内に記録されている所定のディレクトリ内の複数のファイルに、クラスタチェーンの解析が必要な処理を実行するために、処理対象となるファイルが記録されているディレクトリのファイルパスとして利用者が文字入力ユニット3から文字列の情報を入力したとする。すると、CPU7によって、読み込み処理が実行され、図4に示すように、まず、そのステップS201で、ディレクトリ項目読出指令がI/F6経由でメモリーカードユニット4に出力される。そして、メモリーカードユニット4によって、前記利用者によって指定されたファイルパスに対応するディレクトリのサブディレクトリ指示項目がメモリーカードから読み出されてCPU7に出力される。
また、ステップS202で、ディレクトリクラスタチェーン項目の属性フィールドのフィールド値が「0x4F」であることが確認され、ステップS203で、前記ディレクトリクラスタチェーン項目の先頭のクラスタチェーン情報フィールドから順番に有効なフィールド値が取得される。つまり、FATの走査をすることなしに、先頭クラスタに続くクラスタのクラスタチェーンの情報が取得される。
ここで、前記ディレクトリクラスタチェーン項目のインデックスフィールドにビット7が記録されていたとする。すると、ステップS204の判定が「No」となり、ステップS206で、FATファイルシステムの規格に従い、通常のファイルシステム処理が実行され、その処理結果がI/F6経由で表示ユニットに出力される。そして、表示ユニット5によって、その出力された処理結果の画像データが表示装置に表示される。
このように、本実施形態の携帯端末1にあっては、ディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドに、先頭クラスタに引き続くクラスタのクラスタ番号を記録するようにした。そのため、所定のディレクトリ内のファイルのディレクトリ項目やディレクトリのディレクトリ項目が複数のクラスタにまたがって記録されているとき(クラスタチェーンが生成されているとき)に、各ディレクトリ項目に対して所定の処理を行う場合には、ディレクトリクラスタチェーン項目のクラスタチェーン情報フィールドに記録されているフィールド値を解析させることで、先頭クラスタに引き続くクラスタのクラスタ番号を取得することができる。そのため、例えば、FATを参照してクラスタチェーンの解析処理することで後続するクラスタを特定する方法に比べ、クラスタチェーンに関するソフトウェア(ファームウェア)処理の高速化を図ることが可能である。
また、ディレクトリクラスタチェーン項目以外のディレクトリ項目は、FATファイルシステムの規格に従って設定した。そのため、携帯端末1で生成されたファイルは、FATファイルシステムを搭載したパソコンでも適切に認識させることができ、それらのパソコンでファイルをそのまま扱わせることができる。即ち、従来のファイルシステムに大幅な改修や変更をせずに、従来のFATファイルシステムをベースとして実装を図ることができ、導入に必要なプロセスを最小限に留めることができる。さらに、従来のFATファイルシステム及びVFATファイルシステム上でも正常に認識され互換性を保持できる。
さらに、クラスタチェーン情報を専用のディレクトリ項目(ディレクトリクラスタチェーン項目)のフィールドに記録するようにした。そのため、クラスタチェーンが長くなり、それまでのディレクトリクラスタチェーン項目に、後続するクラスタ番号を記録しきれなくなった場合には、新しいディレクトリクラスタチェーン項目を生成し、そのディレクトリクラスタチェーン項目のフィールドに前記後続するクラスタ番号を記録できる。
以上、図3のステップS106が特許請求の範囲に記載の記録機能を構成し、以下同様に、図4のステップS201が情報取得機能を構成し、図1のメモリーカードユニット4、CPU7、図3のステップS106が記録手段を構成し、図1のメモリーカードユニット4、CPU7、図4のステップS201が情報取得手段を構成する。
なお、本発明のファイル管理プログラム及びファイル管理装置は、上記実施の形態の内容に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
なお、本発明のファイル管理プログラム及びファイル管理装置は、上記実施の形態の内容に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
1は携帯端末、2は撮像ユニット、3は文字入力ユニット、4はメモリーカードユニット、5は表示ユニット、6はI/F、7はCPU、8はRAM、9はROM、10はバス
Claims (4)
- FATファイルシステムに基づき、各ディレクトリに関するディレクトリ項目をクラスタチェーンを用いて記録するファイル管理プログラムであって、
前記ディレクトリ項目を格納しているクラスタを示すクラスタチェーン情報を、当該クラスタチェーン情報を記録するためのディレクトリクラスタチェーン項目に記録する記録機能をコンピュータに実行させることを特徴とするファイル管理プログラム。 - 前記ディレクトリクラスタチェーン項目から前記クラスタチェーン情報を取得する情報取得機能をコンピュータに実行させることを特徴とする請求項1に記載のファイル管理プログラム。
- FATファイルシステムに基づき、各ディレクトリに関するディレクトリ項目をクラスタチェーンを用いて記録するファイル管理装置であって、
前記ディレクトリ項目を格納しているクラスタを示すクラスタチェーン情報を、当該クラスタチェーン情報を記録するためのディレクトリ項目に記録する記録手段を備えたことを特徴とするファイル管理装置。 - 前記ディレクトリクラスタチェーン項目から前記クラスタチェーン情報を取得する情報取得手段を備えたことを特徴とする請求項3に記載のファイル管理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005131843A JP2006309536A (ja) | 2005-04-28 | 2005-04-28 | ファイル管理プログラム、及びファイル管理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005131843A JP2006309536A (ja) | 2005-04-28 | 2005-04-28 | ファイル管理プログラム、及びファイル管理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006309536A true JP2006309536A (ja) | 2006-11-09 |
Family
ID=37476342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005131843A Withdrawn JP2006309536A (ja) | 2005-04-28 | 2005-04-28 | ファイル管理プログラム、及びファイル管理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006309536A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100405373C (zh) * | 2006-11-29 | 2008-07-23 | 北京中星微电子有限公司 | 一种文件系统的目录项整理方法 |
US8176103B2 (en) | 2008-03-12 | 2012-05-08 | Samsung Electronics Co., Ltd. | File access method and system |
-
2005
- 2005-04-28 JP JP2005131843A patent/JP2006309536A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100405373C (zh) * | 2006-11-29 | 2008-07-23 | 北京中星微电子有限公司 | 一种文件系统的目录项整理方法 |
US8176103B2 (en) | 2008-03-12 | 2012-05-08 | Samsung Electronics Co., Ltd. | File access method and system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7664783B2 (en) | File management program, data structure, and file management device | |
US8150809B2 (en) | File delete method, file open method, storage medium storing file delete program, and storage medium storing file open program | |
US7631022B2 (en) | Information processing apparatus and recording medium | |
US8281289B2 (en) | Device, method, and program for generating and executing execution binary image, and computer-readable recording medium containing the execution binary image execution program | |
JP5217155B2 (ja) | ファイル圧縮自動判定方式および方法、並びに、プログラム | |
US20050246710A1 (en) | Sharing of downloaded resources | |
JP2007188440A (ja) | データベースの作成方法と装置、及びそのデータベース | |
US20140108356A1 (en) | Information processing apparatus | |
US20060026415A1 (en) | Method of updating a portion BIOS | |
US8346535B2 (en) | Information processing apparatus, information processing method, and computer program product for identifying a language used in a document and for translating a property of the document into the document language | |
JP2006309536A (ja) | ファイル管理プログラム、及びファイル管理装置 | |
JP2009157441A (ja) | 情報処理装置、ファイル再配置方法およびプログラム | |
JP5409090B2 (ja) | 情報処理装置、情報処理方法、プログラム及び記憶媒体 | |
JP2006309400A (ja) | ファイル管理プログラム、及びファイル管理装置 | |
CN110443053B (zh) | 一种基于密钥循环表及映射表的密钥生成方法 | |
JP2006127444A (ja) | ファイル管理プログラム、データ構造及びファイル管理装置 | |
JP2006092088A (ja) | ファイル管理プログラム、データ構造及びファイル管理装置 | |
JP7021401B1 (ja) | ロギング支援装置、ロギングシステム、ロギング支援方法及びプログラム | |
JP6124640B2 (ja) | 文書管理装置、情報処理方法及びプログラム | |
JP5047139B2 (ja) | 画像処理装置及びプログラム | |
JP2007004326A (ja) | データアクセス方法及びそのプログラム | |
JP2009217588A (ja) | ファイルシステム、電子カメラ、ファイルアクセス方法及びプログラム | |
JP2006092248A (ja) | ファイル管理プログラム、データ構造及びファイル管理装置 | |
US20080243798A1 (en) | Search device and recording medium | |
JP6160430B2 (ja) | 管理装置、管理方法、および管理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080423 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20090612 |