JP2006127444A - ファイル管理プログラム、データ構造及びファイル管理装置 - Google Patents

ファイル管理プログラム、データ構造及びファイル管理装置 Download PDF

Info

Publication number
JP2006127444A
JP2006127444A JP2005006012A JP2005006012A JP2006127444A JP 2006127444 A JP2006127444 A JP 2006127444A JP 2005006012 A JP2005006012 A JP 2005006012A JP 2005006012 A JP2005006012 A JP 2005006012A JP 2006127444 A JP2006127444 A JP 2006127444A
Authority
JP
Japan
Prior art keywords
subdirectory
cluster
file
directory
field
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
Application number
JP2005006012A
Other languages
English (en)
Inventor
Masafumi Mori
雅史 森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005006012A priority Critical patent/JP2006127444A/ja
Publication of JP2006127444A publication Critical patent/JP2006127444A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 クラスタチェーンに関するソフトウェア処理(ファームウェア)の高速化を図ること。
【解決手段】 サブディレクトリ識別項目のファイルサイズフィールドに、先頭クラスタの直後に続くクラスタのクラスタ番号を示すフィールド値(情報)を記録するようにした。そのため、所定のサブディレクトリ内のファイルのディレクトリエントリやディレクトリのディレクトリエントリが複数のクラスタにまたがって記録されているときに(クラスタチェーンが生成されているときに)、前記サブディレクトリ内から所望のファイルを検索する場合には、前記サブディレクトリを示すサブディレクトリ識別項目のファイルサイズフィールドに記録されている情報を解析させることで、先頭クラスタに続くクラスタのクラスタ番号を取得することができる。そのため、クラスタチェーンの解析の高速化を図ることができ、その結果、前記所望ファイルの検索処理の改善を図ることができる。
【選択図】 図2

Description

本発明は、ファイルやディレクトリのディレクトリエントリを記録することで、ファイルやディレクトリを管理するファイル管理プログラム、そのファイル管理プログラムに好適なデータ構造及びファイル管理装置に関する。
従来、この種のファイル管理プログラムとしては、例えば、マイクロソフト社のオペレーティングシステム(Windows(登録商標)やMS-DOS(登録商標)) に搭載されたファイルシステム、つまり、FAT(File Allocation Table)ファイルシステムがある(例えば特許文献1参照)。この特許文献1に記載されているファイル管理プログラムにあっては、新しいファイルやディレクトリが生成されるたびに、その生成されたファイル等のディレクトリエントリを記録することで、ファイル等を管理するようになっている。
また、この特許文献1に記載されているようなファイル管理プログラムにあっては、一般に、それらファイル等のディレクトリエントリの記録に使用される領域の合計サイズが1つのクラスタ領域のサイズより小さい場合には、ディレクトリエントリを1つのクラスタ領域に記録する。また、その合計サイズが、1つのクラスタのサイズより大きい場合には、現在のクラスタ番号に引き続く(リンクする)クラスタ領域を新しく確保し、その新しく確保されたクラスタ領域に継続してディレクトリエントリを記録する。なお、クラスタ領域が新しく確保された場合には、その新しく確保されたクラスタ領域のクラスタ番号のリンク状態を、クラスタチェーンとして、FATに記録するようになっている。
そして、所望のファイル等を検索する場合には、まず、先頭クラスタ領域を読み出し、その読み出された先頭クラスタ領域内のディレクトリエントリに対して検索処理を開始する。その後、先頭クラスタ領域内の全てのディレクトリエントリに対して検索処理が行われると、その検索処理を中断させ、FATを参照してクラスタチェーンを解析し、先頭クラスタ番号に引き続くクラスタ番号を特定する。そして、その特定されたクラスタ領域を読み出し、そのクラスタ領域内のディレクトリエントリに対して検索処理を再開する。
特開平6−309207号公報
しかしながら、上記従来のファイル管理プログラムにあっては、クラスタチェーンがあるときに、ファイル等を検索する場合には、検索処理の途中でFATによるクラスタチェーンの解析処理を行うようになっているため、例えば、低消費電力化や小型化といった要求のために、ハードウエア性能に厳しい制約がある組み込み機器に適用した場合、多くの時間が掛かってしまい、その結果、検索に要する時間が増大してしまう恐れがあった。
本発明は、上記従来技術の未解決の問題点を解決することを目的とするものであって、クラスタチェーンに関するソフトウェア(ファームウェア)処理を高速化(改善)することが可能なファイル管理プログラム、そのファイル管理プログラムに好適なデータ構造及びファイル管理装置を提供することを課題とする。
上記課題を解決するために、本発明のファイル管理プログラムは、所定のファイル及びディレクトリのディレクトリエントリを所定の記憶装置のクラスタに記録することで、ファイル及びディレクトリを管理するファイル管理プログラムであって、所定のサブディレクトリ内のファイル及びディレクトリのディレクトリエントリが複数のクラスタ領域にまたがって記録されると、前記サブディレクトリを示すサブディレクトリ指示項目の空きフィールド、前記サブディレクトリを示すサブディレクトリ識別項目の空きフィールド、及び前記サブディレクトリの親ディレクトリを示す親ディレクトリ指示項目の空きフィールドの少なくとも1つに、前記サブディレクトリ識別項目の先頭クラスタ番号フィールドに示されるクラスタ番号に継続する(リンクする、引き続く)クラスタ番号を記録する記録機能をコンピュータに実行させることを特徴とする。なお、サブディレクトリ指示項目は、この項目がある階層レベルより1つ下層のサブディレクトリを示すためのディレクトリエントリである。また、サブディレクトリ識別項目は、この項目がある階層レベルのサブディレクトリ、即ち、自分自身のディレクトリを示すためのディレクトリエントリである。さらに、親ディレクトリ指示項目は、この項目がある階層レベルより1つ上層の親ディレクトリを示すためのディレクトリエントリである。
また、前記記録機能は、直後に続くクラスタ番号を記録するようにしてもよい。
さらに、前記記録機能は、直後に続くクラスタ番号に引き続いて継続する複数のクラスタ番号を記録するようにしてもよい。
さらに、前記空きフィールドは、ファイルサイズフィールド及び予約フィールドの少なくとも一方であってもよい。
また、本発明のファイル管理プログラムは、所定のファイル及びディレクトリのディレクトリエントリを所定の記憶装置のクラスタに記録することで、ファイル及びディレクトリを管理するファイル管理プログラムであって、所定のサブディレクトリを示すサブディレクトリ指示項目の空きフィールド、前記サブディレクトリを示すサブディレクトリ識別項目の空きフィールド、及び前記サブディレクトリの親ディレクトリを示す親ディレクトリ指示項目の空きフィールドの少なくとも1つに、前記サブディレクトリ識別項目の先頭クラスタ番号フィールドに示されるクラスタ番号に継続する(リンクする、引き続く)クラスタ番号が記録されている場合には、そのクラスタ番号を記録している空きフィールドを解析することで、前記サブディレクトリ識別項目の先頭クラスタ番号フィールドに示されるクラスタ番号に継続(リンク)するクラスタ番号を特定する特定機能をコンピュータに実行させることを特徴とする。
さらに、本発明のデータ構造は、所定のファイル及びディレクトリに対応するディレクトリエントリを所定の記憶装置のクラスタに記録することで、ファイル及びディレクトリを管理するファイル管理プログラムで用いられるデータ構造であって、所定のサブディレクトリを示すサブディレクトリ指示項目の空きフィールド、前記サブディレクトリを示すサブディレクトリ識別項目の空きフィールド、及び前記サブディレクトリの親ディレクトリを示す親ディレクトリ指示項目の空きフィールドの少なくとも1つに、前記サブディレクトリ識別項目の先頭クラスタ番号フィールドに示されるクラスタ番号に継続(リンク)するクラスタ番号を記録することを特徴とする。
また、本発明のファイル管理装置にあっては、所定のファイル及びディレクトリのディレクトリエントリを所定の記憶装置のクラスタに記録することで、ファイル及びディレクトリを管理するファイル管理装置であって、所定のサブディレクトリ内のファイル及びディレクトリのディレクトリエントリが複数のクラスタ領域にまたがって記録されると、前記サブディレクトリを示すサブディレクトリ指示項目の空きフィールド、前記サブディレクトリを示すサブディレクトリ識別項目の空きフィールド、及び前記サブディレクトリの親ディレクトリを示す親ディレクトリ指示項目の空きフィールドの少なくとも1つに、前記サブディレクトリ識別項目の先頭クラスタ番号フィールドに示されるクラスタ番号に継続(リンク)するクラスタ番号を記録する記録手段を備えたことを特徴とする。
さらに、本発明のファイル管理装置にあっては、所定のファイル及びディレクトリのディレクトリエントリを所定の記憶装置のクラスタに記録することで、ファイル及びディレクトリを管理するファイル管理装置であって、所定のサブディレクトリを示すサブディレクトリ指示項目の空きフィールド、前記サブディレクトリを示すサブディレクトリ識別項目の空きフィールド、及び前記サブディレクトリの親ディレクトリを示す親ディレクトリ指示項目の空きフィールドの少なくとも1つに、前記サブディレクトリ識別項目の先頭クラスタ番号フィールドに示されるクラスタ番号に継続(リンク)するクラスタ番号が記録されている場合には、そのクラスタ番号を記録している空きフィールドを解析することで、前記サブディレクトリ識別項目の先頭クラスタ番号フィールドに示されるクラスタ番号に継続(リンク)するクラスタ番号を特定する特定手段を備えたことを特徴とする。
このような構成によれば、例えば、所定のディレクトリ内のファイルやサブディレクトリのディレクトリエントリが複数のクラスタ領域にまたがって記録されているとき(クラスタチェーンがあるとき)に、そのディレクトリ内のファイル等から所望のファイルを検索する場合、つまり、それらファイル等のディレクトリエントリに対して検索処理を行う場合には、前記ディレクトリを示すサブディレクトリ指示項目の空きフィールド、前記サブディレクトリを示すサブディレクトリ識別項目の空きフィールド、及び前記サブディレクトリの親ディレクトリを示す親ディレクトリ指示項目の空きフィールドの少なくとも1つに記録されているフィールド値(情報)を解析させることで、後続するクラスタのクラスタ番号を取得させることができる。そのため、例えば、FATを参照してクラスタチェーンを解析させることで後続するクラスタを特定させる方法に比べ、クラスタチェーンに関するソフトウェア(ファームウェア)処理の高速化(改善)を図ることが可能である。
また、本発明のファイル管理プログラムにあっては、前記記録機能は、前記サブディレクトリを示すサブディレクトリ指示項目の属性フィールド、前記サブディレクトリを示すサブディレクトリ識別項目の属性フィールド、及び前記サブディレクトリの親ディレクトリを示す親ディレクトリ指示項目の属性フィールドの少なくとも1つに、前記継続するクラスタ番号を示す情報が記録されていることを示す情報を記録するものであってもよい。
このような構成によれば、例えば、継続するクラスタ番号を示す情報が記録されていることを示す情報がある場合には、その記録されている情報を取得するようにし、また、前記情報が記録されていない場合には、従来の方法により、FATを参照してクラスタチェーンの解析処理を行うようにするというように、実行させる処理の選択が可能である。
また、サブディレクトリ指示項目の空きフィールド、サブディレクトリ識別項目の空きフィールド、及び親ディレクトリ指示項目の空きフィールドの少なくとも2つに、同じクラスタ番号を記録するようにしてもよい。
このような構成によれば、例えば、2つの空きフィールドに同じクラスタ番号を記録することで、一方の空きフィールドに記録されているクラスタ番号を読み出せなくなった場合に、他方の空きフィールドに記録されているクラスタ番号を読み出すことができる。即ち、クラスタ番号のデータを二重化することができ、安全性を向上することができる。
さらに、サブディレクトリ指示項目の空きフィールド、サブディレクトリ識別項目の空きフィールド、及び親ディレクトリ指示項目空きフィールドのうち、少なくとも2つのフィールドの領域全体に対して記録対象のクラスタ番号を1つ記録するようにしてもよい。
このような構成によれば、例えば、一方の空きフィールドの記憶領域にクラスタ番号を記憶できる領域がなくなった場合に、他方の空きフィールドの記憶領域にクラスタ番号を記録することができる。即ち、複数の空きフィールドに同じデータを記録する方法に比べ、より多くのクラスタ番号を記録することができ、効率性を向上することができる。
以下、本発明のファイル管理プログラムの実施形態として、画像データを生成可能なCCDカメラ等の撮像ユニットを備える携帯端末に適用した例を図面に基づいて説明する。
即ち、この携帯端末1にあっては、撮像ユニットで画像データが生成されると、指定されたサブディレクトリを示すサブディレクトリエントリ指示項目が示すクラスタ(先頭クラスタ)内に、前記生成された画像データのファイルのファイル名のディレクトリエントリを記録できるだけの領域が残っているか否かを判定する。残っていない場合には、前記先頭クラスタの直後に続く新しいクラスタを確保し、その新しく確保されたクラスタのクラスタ番号を示すフィールド値(情報)と、その情報が記録されていることを示す情報とをサブディレクトリ識別項目に記録し、また、ファイル名のディレクトリエントリを前記新しく確保されたクラスタに記録する。そして、この携帯端末1にあっては、所望のファイルを検索するときに、FATを解析することなく、検索対象であるファイルが記録されているサブディレクトリを示すサブディレクトリ識別項目を解析することで、前記所望のファイルを効率的に検索することができるようになっている。
<携帯端末の構成>
図1は、本実施形態の携帯端末の内部構成を示すブロック図である。この図1に示すように、携帯端末1は、撮像ユニット2、文字入力ユニット3、メモリーカードユニット4、表示ユニット5、I/F(I nterFace)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に出力する。
さらに、メモリーカードユニット4は、平面視左端部に配され、電力供給を停止してもデータを保持可能な不揮発性のメモリーカード(不図示)を着脱可能に構成される。そして、メモリーカードユニット4は、CPU7からファイル格納指令(後述)が出力されると、CPU7で生成されたファイル(後述)をメモリーカード(不図示)に記録する。
また、メモリーカードユニット4は、CPU7からディレクトリエントリ記録指令(後述)が出力されると、後述するようにCPU7で生成されるフィールド値をサブディレクトリ識別項目の属性フィールドやファイルサイズフィールドに記録し、また、CPU4で生成されるファイル名のディレクトリエントリをメモリーカード(不図示)に記録する。
さらに、メモリーカードユニット4は、CPU7からI/F6経由でディレクトリエントリ読出指令(後述)が出力されると、その出力されたディレクトリエントリ読出指令(後述)で指定されるファイルのファイル名のディレクトリエントリを、メモリーカード(不図示)から読み出してI/F6経由でCPU7に出力する。また、メモリーカードユニット4は、CPU7からI/F6経由でファイル読出指令(後述)が出力されると、前記ディレクトリエントリ読出指令(後述)によって読み出されたディレクトリエントリに対応するファイルをメモリーカード(不図示)から読み出す。そして、メモリーカードユニット4は、その読み出されたファイルをI/F6経由で表示ユニット5に出力する。
さらに、表示ユニット5は、前面側の平面視中央部に配され、任意の画像を表示可能な表示装置(不図示)を含んで構成される。そして、表示ユニット5は、メモリーカードユニット4からI/F6経由でファイルが出力されると、その出力されたファイルに含まれるデータ(例えば、画像データや文書データ等)を表示装置(不図示)に表示させる。
また、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に出力してから、この演算処理を終了する。
具体的には、サブディレクトリ識別項目は、FATファイルシステムの規格に従って、図2に示すように、名前フィールド、拡張子フィールド、属性フィールド(空きフィールド)、予約フィールド、更新時刻フィールド、更新日付フィールド、先頭クラスタフィールド、ファイルサイズフィールド(空きフィールド)で構成される。そして、名前フィールド、拡張子フィールド、予約フィールド、更新時刻フィールド、更新日付フィールド及び先頭クラスタフィールドには、FATファイルシステムの規格に従って設定する。
また、ファイルサイズフィールドには、サブディレクトリ識別項目の先頭クラスタ番号フィールドに記録されている情報が示すクラスタの直後に続くクラスタのクラスタ番号を16進数表記したものを設定する。なお、FATファイルシステムの規格によれば、ファイルサイズフィールドは空きフィールドであり、通常、全体に「0」が設定される。
さらに、属性フィールドには、サブディレクトリ識別項目のファイルサイズフィールドに情報が記録されていることを示す情報(つまり、本実施形態の携帯端末1による記録方式を採用していることを示す使用フラグ、「0x50」)を設定する。なお、FATファイルシステムの規格によれば、通常、属性フィールドには「0x10」が設定される。
さらに、CPU7は、メモリーカード(不図示)に記録されている複数のファイルから所望のファイルを検索するために、その所望のファイルのファイル名として文字入力ユニット3から文字列の情報が入力されるとファイル検索処理(後述)を実行する。そして、CPU7は、ファイル検索処理(後述)が実行されると、ディレクトリエントリ読出指令(後述)をI/F6経由でメモリーカードユニット4に出力して、各ファイルのファイル名のディレクトリエントリをメモリーカード(不図示)から順次読み出す。また、CPU7は、その読み出されたディレクトリエントリの名前フィールドに記録されている文字列と前記入力された文字列とが一致しているか否かを判定し、それらが一致している場合には、ファイル読出指令(後述)をメモリーカードユニット4に出力して、前記ディレクトリエントリが読み出されたファイルを表示ユニット5に表示させてから、このファイル検索処理(後述)を終了する。なお、ファイル検索処理(後述)の実行中に、ファイル名のディレクトリエントリを先頭クラスタから全て読み出し終えた場合には、サブディレクトリ識別項目をメモリーカード(不図示)から読み出し、そのサブディレクトリ識別項目の属性フィールドに記録されている情報とファイルサイズフィールドに記録されている情報とを読み出す。そして、その読み出された属性フィールドに「0x50」が記録されている場合には、ファイルサイズフィールドに記録されている情報が示すクラスタ番号に記録されているファイルのディレクトリエントリの情報を順次読み出すようになっている。
さらに、RAM8は、CPU7で実行される各種プログラムを展開するためのワークエリアと、それら各種プログラムの実行時に用いられるデータを記録するためのメモリ領域とを形成する。そして、RAM8は、CPU7から読み出し要求が出力されると、RAM3に記録されているデータから当該読み出し要求に応じたデータをCPU7に出力する。
また、ROM9は、CPU7で実行される各種プログラムとデータとを記録する。そして、ROM9は、CPU7から読み出し要求が出力されると、ROM9に記録されているプログラムやデータから当該読み出し要求に応じたプログラム等をCPU7に出力する。
<携帯端末の動作>
次に、CPU7で実行されるディレクトリエントリ生成処理を、図3のフローチャートに従って説明する。このディレクトリエントリ生成処理は、新生成ファイルを記録するサブディレクトリのファイルパス、及び新生成ファイルのファイル名の組み合わせとして、文字入力ユニット3から文字列の情報が入力されると実行される。そして、この演算処理が実行されると、まず、そのステップS101で、メモリーカード(不図示)の記録方式として、本実施形態の携帯端末1のファイルシステムによる記録方式と、FATファイルシステムによる記録方式とのいずれが採用されているのかを判定する。具体的には、本実施形態の携帯端末1による記録方式を採用していることを示す使用フラグ「0x50」が、サブディレクトリ識別項目の属性フィールドにセットされているか否かを判定する。そして、使用フラグがセットされている場合(Yes)、つまり、本実施形態による記録方式が採用されている場合にはステップS102に移行する。また、使用フラグがセットされていない場合(No)、つまり、FATファイルシステムによる記録方式が採用されている場合にはステップS107に移行する。なお、使用フラグは、サブディレクトリが生成され、それに伴って、サブディレクトリ識別項目が生成されるときにセットされる。
次にステップS102に移行して、前記サブディレクトリを示すサブディレクトリ識別項目のファイルサイズフィールドに、先頭クラスタ番号フィールドに記録されている情報が示すクラスタの直後に続くクラスタのクラスタ番号(以下、「後続するクラスタ番号」とも呼ぶ。)が記録されているか否かを判定する。そして、後続するクラスタ番号が記録されている場合には(Yes)ステップS103に移行し、記録されていない場合には(No)ステップS104に移行する。
前記ステップS103では、サブディレクトリ識別項目のファイルサイズフィールドに記録されているクラスタ番号を取得してから、前記ステップS104に移行する。
前記ステップS104では、FATファイルシステムの規格に従い、前記新生成ファイルのファイル名のディレクトリエントリのフィールド値を生成して記録する。具体的には、前記ステップS102の判定が「Yes」であったか否かを判定し、「Yes」であった場合には、ファイル名のディレクトリエントリを、前記ステップS103で取得されたクラスタ番号のクラスタに記録させる指令(以下、「ディレクトリエントリ記録指令」とも呼ぶ。)をメモリーカードユニット4に出力する。また、「No」であった場合には、ファイル名のディレクトリエントリを、前記サブディレクトリを示すサブディレクトリ識別項目の先頭クラスタ番号フィールドに記録されているフィールド値が示すクラスタ番号のクラスタに記録させるディレクトリエントリ記録指令をメモリーカードユニット4に出力する。なお、前記サブディレクトリを示すサブディレクトリ識別項目の先頭クラスタ番号フィールドに記録されているフィールド値が示すクラスタ番号のクラスタに前記新生成ファイルのファイル名のディレクトリエントリを記録できるだけの領域が残っていない場合は、先頭クラスタの直後に続く新しいクラスタを確保し、その新しく確保されたクラスタに記録させるディレクトリエントリ記録指令をメモリーカードユニット4に出力する。
次にステップS105に移行して、前記ステップS104で新しいクラスタが確保されたか否かを判定し、確保された場合には(Yes)ステップS106に移行し、確保されていない場合(No)、つまり、前記サブディレクトリを示すサブディレクトリ識別項目の先頭クラスタ番号フィールドに記録されているフィールド値が示すクラスタ番号のクラスタに前記新生成ファイルのファイル名のディレクトリエントリを記録できるだけの領域が残っており、何もする必要がない場合には、そのままこの演算処理を終了する。
前記ステップS106では、前記ステップS104で新しく確保されたクラスタのクラスタ番号を、前記サブディレクトリを示すサブディレクトリ識別項目のファイルサイズフィールドに記録してから、この演算処理を終了する。
一方、前記ステップS107では、FATファイルシステムの規格に基づいて、ディレクトリエントリ作成処理を実行してから、この演算処理を終了する。
次に、CPU7で実行されるファイル検索処理を、図4のフローチャートに従って説明する。このファイル検索処理は、任意のサブディレクトリに記録されている複数のファイルから所望のファイルを検索するために、その所望のファイルのファイル名、即ち、当該検索の対象となるファイルが記録されているサブディレクトリのファイルパスとして文字入力ユニット3から文字列の情報が入力されると実行される処理であって、まずそのステップS201で、利用者によって指定されたファイルパスに対応するサブディレクトリを示すサブディレクトリ指示項目が示すクラスタにおける記録位置の先頭から順番に、ファイル名のディレクトリエントリを読み出してCPU7に出力させる指令(以下、「ディレクトリエントリ読出指令」とも呼ぶ。)をI/F6経由でメモリーカードユニット4に出力する。また、前記クラスタに記録されているファイル名のディレクトリエントリが全て読み出されると、前記クラスタ内のサブディレクトリ識別項目を読み出し、そのサブディレクトリエントリ識別項目の属性フィールドに「0x50」が記録されているか否かを判定する。そして、「0x50」が記録されている場合には、前記サブディレクトリエントリ識別項目のファイルサイズフィールドに記録されている情報が示すクラスタ番号に記録されているファイル名のディレクトリエントリを読み出してCPU7に出力させる。また、「0x10」が記録されている場合には、FATを読み出し、そのFATを参照してクラスタチェーンを解析し、前記情報が示すクラスタに続くクラスタを特定する。そして、その特定されたクラスタを先頭から読み出し、その読み出されたクラスタに記録されているファイル名のディレクトリエントリを読み出してCPU7に出力するものとする。
次にステップS202に移行して、前記ステップS201で読み出されたディレクトリエントリのファイル名フィールドに含まれる文字列が、前記利用者によって入力されたファイル名の文字列と一致するか否かを判定する。そして、それらが一致する場合には(Yes)前記ステップS201でディレクトリエントリが読み出されたファイルをメモリーカード(不図示)から読み出して表示ユニット5に出力させる指令(以下、「ファイル読出指令」とも呼ぶ。)をI/F6経由でメモリーカードユニット4に出力してから、この演算処理を終了し、一致しない場合には(No)次に記録されているファイル名のディレクトリエントリを読み出して解析するために、前記ステップS201に移行する。
<携帯端末の具体的動作>
次に、本実施形態の携帯端末1の動作を具体的状況に基づいて詳細に説明する。
<ファイルの生成>
まず、利用者が撮像のための操作をし、その操作により、被写体の画像データが撮像ユニット2のCCDカメラ(不図示)で生成されたとする。すると、図1に示すように、撮像ユニット2によって、その生成された画像データがI/F6経由でCPU7に出力される。そして、CPU7によって、その出力された画像データのファイルが生成される。
次いで、その生成されたファイル(新生成ファイル)を記録するサブディレクトリのファイルパス(メモリーカード(不図示)内の任意のサブディレクトリのファイルパス)、及び新生成ファイルのファイル名の組み合わせとして、利用者が文字入力ユニット3のキーボード(不図示)から文字列を入力したとする。すると、CPU7によって、ファイル格納指令がI/F6経由でメモリーカードユニット4に出力される。そして、メモリーカードユニット4によって、前記生成されたファイルが前記ファイルパスに格納される。
また同時に、CPU7によって、ディレクトリエントリ生成処理が実行され、その際、前記サブディレクトリを示すサブディレクトリ識別項目の属性フィールドに使用フラグ「0x50」がセットされており、また、前記ファイル名を記録するためのディレクトリエントリを記録できるだけの領域が、前記サブディレクトリを示すサブディレクトリ指示項目の先頭クラスタ番号フィールドが示すクラスタ(先頭クラスタ)内に残っておらず、先頭クラスタの直後に続くクラスタ(後続するクラスタ)が確保されている(先頭クラスタ内のサブディレクトリ識別項目のファイルサイズフィールドにクラスタ番号が記録されていた)とする。すると、図3に示すように、そのステップS101及びS102の判定が「Yes」となり、ステップS103で、サブディレクトリ識別項目のファイルサイズフィールドに記録されているクラスタ番号が取得される。即ち、サブディレクトリ識別項目のファイルサイズフィールドを読み出すことで、後続するクラスタ番号を取得することができるため、例えば、FATのクラスタチェーンを解析することで後続するクラスタ番号を取得する方法に比べ、負荷が小さくてすみ、内部処理の効率化することができる。
さらに、ステップS104で、ディレクトリエントリ記録指令がI/F6経由でメモリーカードユニット4に出力され、また、ステップS106の判定が「No」となり、この演算処理を終了する。そして、メモリーカードユニット4によって、図2に示すように、FATファイルシステムの規格に従ってファイル名のディレクトリエントリが生成され、その生成されたディレクトリエントリが、前記後続するクラスタに記録される。
<ファイルの検索>
また、上記フローが繰り返し実行され、複数のファイルが記録された後に、所定のサブディレクトリに記録されている複数のファイルから所望のファイルを検索するために、その所望のファイルのファイル名、即ち、当該検索の対象となるファイルが記録されているディレクトリのファイルパスとして利用者が文字入力ユニット3から文字列の情報を入力したとする。すると、CPU7によって、ファイル検索処理が実行され、図4に示すように、まず、そのステップS201で、ディレクトリエントリ読出指令がI/F6経由でメモリーカードユニット4に出力される。そして、メモリーカードユニット4によって、利用者によって指定されたファイルパスに対応するディレクトリのサブディレクトリ指示項目が示す先頭クラスタにおける記録位置の先頭のディレクトリエントリがメモリーカード(不図示)から読み出されてCPU7に出力される。また、そのディレクトリエントリのファイル名フィールドに含まれている文字列が、前記利用者によって入力されたファイル名と一致しなかったとする。すると、ステップS202の判定が「No」となり、前記ステップS201から上記フローが繰り返し実行され、前記読み出されたディレクトリエントリに続くディレクトリエントリが先頭クラスタから順次読み出される。
そして、上記フローが繰り返し実行されるうちに、先頭クラスタに記録されている全てのファイル名のディレクトリエントリが読み出されたとする。すると、メモリーカードユニット4によって、サブディレクトリ識別項目の属性フィールドに記録されているフィールド値が読み出され、また、その読み出されたフィールド値に「0x10」が記録されていたとする。すると、メモリーカード4によって、サブディレクトリ識別項目のファイルサイズフィールドが示すクラスタに記録されているファイル名のディレクトリエントリの読み出しが開始され、上記フローが再度繰り返し実行される。また、上記フローが繰り返し実行されるうちに、前記文字列が前記入力されたファイル名と一致したとすると、ファイル読出指令がI/F6経由でメモリーカードユニット4に出力されてから、ステップS202の判定が「Yes」となり、この演算処理を終了する。そして、メモリーカードユニット4によって、前記ディレクトリエントリが読み出されたファイルがメモリーカード(不図示)から読み出されて表示ユニット5に出力され、表示ユニット5によって、そのファイルが開かれて当該ファイルに含まれる画像データが表示装置(不図示)に表示される。
このように、本実施形態の携帯端末1にあっては、サブディレクトリ識別項目のファイルサイズフィールドに、先頭クラスタの直後に続くクラスタのクラスタ番号を記録するようにした。そのため、所定のサブディレクトリ内のファイルのディレクトリエントリやディレクトリのディレクトリエントリが複数のクラスタにまたがって記録されているとき(クラスタチェーンが生成されているとき)に、前記サブディレクトリ内から所望のファイルを検索する場合、つまり、前記ディレクトリエントリに対して検索処理を行う場合には、前記サブディレクトリを示すサブディレクトリ識別項目のファイルサイズフィールドに記録されているフィールド値を解析させることで、先頭クラスタの直後に続くクラスタのクラスタ番号を取得することができる。そのため、例えば、FATを参照してクラスタチェーンの解析処理することで後続するクラスタを特定する方法に比べ、クラスタチェーンに関するソフトウェア(ファームウェア)処理の高速化を図ることが可能である。
また、サブディレクトリ識別項目の属性フィールドやファイルサイズフィールド以外のフィールド値は、FATファイルシステムの規格に従って設定した。そのため、携帯端末1で生成されたファイルは、FATファイルシステムを搭載したパソコンでも適切に認識させることができ、それらのパソコンでファイルをそのまま扱わせることができる。なお、FATファイルシステムを搭載したパソコンで、利用者によるファイル操作が行われることで、属性フィールドやファイルサイズフィールドがFATファイルシステムの規定に従ったものに書き換えられてしまったファイルについては、携帯端末1に属性フィールドやファイルサイズフィールドの適切な書き直し等の処理を行わせるようにしてもよい。
以上、上記実施形態では、図3のステップS103が特許請求の範囲に記載の記録機能を構成し、以下同様に、図4のステップS201が特定機能を構成し、図1のCPU7、メモリーカードユニット4及び、図3のステップS103が記録手段を構成し、図1のCPU7、図4のステップS201が特定機能を構成する。
なお、本発明のファイル管理プログラム、データ構造及びファイル管理装置は、上記実施の形態の内容に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
上記実施形態では、サブディレクトリ識別項目のファイルサイズフィールドに後続するクラスタ番号を記録する例を示したが、これに限られるものではない。例えば、サブディレクトリ識別項目の予約フィールドに記録するようにしてもよく、また、サブディレクトリ指示項目や親ディレクトリ指示項目の空きフィールド(ファイルサイズフィールド、或いは予約フィールド)に記録するようにしてもよい。サブディレクトリ指示項目の空きフィールドに後続するクラスタ番号を記録する方法によれば、サブディレクトリ指示項目を解析した時点で、そのサブディレクトリ指示項目が示すクラスタに後続するクラスタがあるか否かを判定することができる。そのため、例えば、所定のサブディレクトリのクラスタにディレクトリエントリを記録するときに、そのサブディレクトリのサブディレクトリ指示項目の解析により、前記後続するクラスタがあると判定された場合には、そのまま直ぐに、前記後続するクラスタに前記ディレクトリエントリを記録することができる。
また、先頭クラスタの直後に続くクラスタのクラスタ番号を示すフィールド値(情報)を、サブディレクトリ識別項目のファイルサイズフィールドに記録する例を示したが、これに限られるものではない。例えば、ディレクトリエントリが3つ以上のクラスタにまたがって記録されているときには、先頭クラスタに続く複数のクラスタ番号を記録するようにしてもよい。
さらに、サブディレクトリ指示項目の空きフィールド、サブディレクトリ識別項目の空きフィールド、及び親ディレクトリ指示項目空きフィールドの少なくとも2つに、同じクラスタ番号を記録するようにしてもよい。そのようにすれば、例えば、2つの空きフィールドに同じクラスタ番号を記録することで、一方の空きフィールドに記録されているクラスタ番号を読み出せなくなった場合に、他方の空きフィールドに記録されているクラスタ番号を読み出すことができる。即ち、クラスタ番号のデータを二重化することができ、安全性を向上することができる。
さらに、サブディレクトリ指示項目の空きフィールド、サブディレクトリ識別項目の空きフィールド、及び親ディレクトリ指示項目の空きフィールドの少なくとも2つに、異なるクラスタ番号を記録するようにしてもよい。そのようにすれば、例えば、一方の空きフィールドの記憶領域にクラスタ番号を記憶できる領域がなくなった場合に、他方の空きフィールドの記憶領域にクラスタ番号を記録することができる。即ち、複数の空きフィールドに同じデータを記録する方法に比べ、より多くのクラスタ番号を記録することができ、効率性を向上することができる。
また、ファイル管理プログラムを実現する組み込み機器用のファームウェアの内部処理や、実装コードに少しでも有益となるその他のフィールド値を記録させてもよい。
実施形態における携帯端末の内部構成を示すブロック図である。 サブディレクトリ識別項目を説明するための説明図である。 ディレクトリエントリ生成処理のフローチャートである。 ファイル検索処理のフローチャートである。
符号の説明
1は携帯端末、2は撮像ユニット、3は文字入力ユニット、4はメモリーカードユニット、5は表示ユニット、6はI/F、7はCPU、8はRAM、9はROM、10はバス

Claims (11)

  1. 所定のファイル及びディレクトリのディレクトリエントリを所定の記憶装置のクラスタに記録することで、ファイル及びディレクトリを管理するファイル管理プログラムであって、所定のサブディレクトリ内のファイル及びディレクトリのディレクトリエントリが複数のクラスタ領域にまたがって記録されると、前記サブディレクトリを示すサブディレクトリ指示項目の空きフィールド、前記サブディレクトリを示すサブディレクトリ識別項目の空きフィールド、及び前記サブディレクトリの親ディレクトリを示す親ディレクトリ指示項目の空きフィールドの少なくとも1つに、前記サブディレクトリ識別項目の先頭クラスタ番号フィールドに示されるクラスタ番号に継続するクラスタ番号を記録する記録機能をコンピュータに実行させることを特徴とするファイル管理プログラム。
  2. 前記記録機能は、直後に続くクラスタ番号を記録することを特徴とする請求項1に記載のファイル管理プログラム。
  3. 前記記録機能は、直後に続くクラスタ番号に引き続いて継続する複数のクラスタ番号を記録することを特徴とする請求項1に記載のファイル管理プログラム。
  4. サブディレクトリ指示項目の空きフィールド、サブディレクトリ識別項目の空きフィールド、及び親ディレクトリ指示項目の空きフィールドの少なくとも2つに、同じクラスタ番号を記録することを特徴とする請求項3に記載のファイル管理プログラム。
  5. サブディレクトリ指示項目の空きフィールド、サブディレクトリ識別項目の空きフィールド、及び親ディレクトリ指示項目空きフィールドのうち、少なくとも2つのフィールドの領域全体に対して記録対象のクラスタ番号を1つ記録することを特徴とする請求項3に記載のファイル管理プログラム。
  6. 前記空きフィールドは、ファイルサイズフィールド及び予約フィールドの少なくとも一方であることを特徴とする請求項1から5のいずれか1項に記載のファイル管理プログラム。
  7. 前記記録機能は、前記サブディレクトリを示すサブディレクトリ指示項目の属性フィールド、前記サブディレクトリを示すサブディレクトリ識別項目の属性フィールド、及び前記サブディレクトリの親ディレクトリを示す親ディレクトリ指示項目の属性フィールドの少なくとも1つに、前記継続するクラスタ番号を示す情報が記録されていることを示す情報を記録することを特徴とする請求項1から6のいずれか1項に記載のファイル管理プログラム。
  8. 所定のファイル及びディレクトリのディレクトリエントリを所定の記憶装置のクラスタに記録することで、ファイル及びディレクトリを管理するファイル管理プログラムであって、所定のサブディレクトリを示すサブディレクトリ指示項目の空きフィールド、前記サブディレクトリを示すサブディレクトリ識別項目の空きフィールド、及び前記サブディレクトリの親ディレクトリを示す親ディレクトリ指示項目の空きフィールドの少なくとも1つに、前記サブディレクトリ識別項目の先頭クラスタ番号フィールドに示されるクラスタ番号に継続するクラスタ番号が記録されている場合には、そのクラスタ番号を記録している空きフィールドを解析することで、前記サブディレクトリ識別項目の先頭クラスタ番号フィールドに示されるクラスタ番号に継続するクラスタ番号を特定する特定機能をコンピュータに実行させることを特徴とするファイル管理プログラム。
  9. 所定のファイル及びディレクトリに対応するディレクトリエントリを所定の記憶装置のクラスタに記録することで、ファイル及びディレクトリを管理するファイル管理プログラムで用いられるデータ構造であって、所定のサブディレクトリを示すサブディレクトリ指示項目の空きフィールド、前記サブディレクトリを示すサブディレクトリ識別項目の空きフィールド、及び前記サブディレクトリの親ディレクトリを示す親ディレクトリ指示項目の空きフィールドの少なくとも1つに、前記サブディレクトリ識別項目の先頭クラスタ番号フィールドに示されるクラスタ番号に継続するクラスタ番号を記録することを特徴とするデータ構造。
  10. 所定のファイル及びディレクトリのディレクトリエントリを所定の記憶装置のクラスタに記録することで、ファイル及びディレクトリを管理するファイル管理装置であって、所定のサブディレクトリ内のファイル及びディレクトリのディレクトリエントリが複数のクラスタ領域にまたがって記録されると、前記サブディレクトリを示すサブディレクトリ指示項目の空きフィールド、前記サブディレクトリを示すサブディレクトリ識別項目の空きフィールド、及び前記サブディレクトリの親ディレクトリを示す親ディレクトリ指示項目の空きフィールドの少なくとも1つに、前記サブディレクトリ識別項目の先頭クラスタ番号フィールドに示されるクラスタ番号に継続するクラスタ番号を記録する記録手段を備えたことを特徴とするファイル管理装置。
  11. 所定のファイル及びディレクトリのディレクトリエントリを所定の記憶装置のクラスタに記録することで、ファイル及びディレクトリを管理するファイル管理装置であって、所定のサブディレクトリを示すサブディレクトリ指示項目の空きフィールド、前記サブディレクトリを示すサブディレクトリ識別項目の空きフィールド、及び前記サブディレクトリの親ディレクトリを示す親ディレクトリ指示項目の空きフィールドの少なくとも1つに、前記サブディレクトリ識別項目の先頭クラスタ番号フィールドに示されるクラスタ番号に継続するクラスタ番号が記録されている場合には、そのクラスタ番号を記録している空きフィールドを解析することで、前記サブディレクトリ識別項目の先頭クラスタ番号フィールドに示されるクラスタ番号に継続するクラスタ番号を特定する特定手段を備えたことを特徴とするファイル管理装置。
JP2005006012A 2004-09-28 2005-01-13 ファイル管理プログラム、データ構造及びファイル管理装置 Withdrawn JP2006127444A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005006012A JP2006127444A (ja) 2004-09-28 2005-01-13 ファイル管理プログラム、データ構造及びファイル管理装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004281109 2004-09-28
JP2005006012A JP2006127444A (ja) 2004-09-28 2005-01-13 ファイル管理プログラム、データ構造及びファイル管理装置

Publications (1)

Publication Number Publication Date
JP2006127444A true JP2006127444A (ja) 2006-05-18

Family

ID=36722103

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005006012A Withdrawn JP2006127444A (ja) 2004-09-28 2005-01-13 ファイル管理プログラム、データ構造及びファイル管理装置

Country Status (1)

Country Link
JP (1) JP2006127444A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672565A (zh) * 2021-08-09 2021-11-19 深圳市猿人创新科技有限公司 一种文件标记方法、装置、电子设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672565A (zh) * 2021-08-09 2021-11-19 深圳市猿人创新科技有限公司 一种文件标记方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US8150809B2 (en) File delete method, file open method, storage medium storing file delete program, and storage medium storing file open program
US7664783B2 (en) File management program, data structure, and file management device
KR100760227B1 (ko) 화상파일 관리장치 및 방법과, 기억매체
US7200617B2 (en) Program for managing external storage, recording medium, management device, and computing system
US20060020645A1 (en) Information processing apparatus and recording medium
US20140108356A1 (en) Information processing apparatus
JP2007188440A (ja) データベースの作成方法と装置、及びそのデータベース
JP4199193B2 (ja) 関連情報管理方法、プログラム及び装置
US6915512B1 (en) Software editing with indication of format and processing state of each process of the software
JP2006127444A (ja) ファイル管理プログラム、データ構造及びファイル管理装置
JP2009134755A (ja) 情報処理装置、その制御方法、情報処理システム、プログラム及びコンピュータ読み取り可能な記録媒体
JP4455235B2 (ja) 画像処理装置、画像処理装置の制御方法、コンピュータプログラム
JP2006309536A (ja) ファイル管理プログラム、及びファイル管理装置
JP2002342137A (ja) 文書管理装置及び文書管理方法並びに記録媒体
JP2006092088A (ja) ファイル管理プログラム、データ構造及びファイル管理装置
JP2009163405A (ja) 情報処理装置、情報処理方法及びプログラム
JP2006309400A (ja) ファイル管理プログラム、及びファイル管理装置
JP4392780B2 (ja) データ格納処理方法、そのプログラム及び記憶媒体、並びに処理システム
JP2009217588A (ja) ファイルシステム、電子カメラ、ファイルアクセス方法及びプログラム
JP2007080205A (ja) 検索装置及び検索方法
JP2004302601A (ja) 検索結果表示方法、検索装置、及びコンピュータプログラム
JP6160430B2 (ja) 管理装置、管理方法、および管理プログラム
JP2007179203A (ja) 帳票検索装置、帳票検索方法、プログラム及びコンピュータ読み取り可能な記憶媒体
JP2004102887A (ja) 文書作成支援装置、文書作成支援方法、プログラムおよび記録媒体
JP2006092248A (ja) ファイル管理プログラム、データ構造及びファイル管理装置

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070403

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071210

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090612