JP3624647B2 - 記憶装置、データ管理装置、データ管理システム、データ管理方法、ファイル管理装置、記録媒体及びファイル管理システム - Google Patents
記憶装置、データ管理装置、データ管理システム、データ管理方法、ファイル管理装置、記録媒体及びファイル管理システム Download PDFInfo
- Publication number
- JP3624647B2 JP3624647B2 JP26717497A JP26717497A JP3624647B2 JP 3624647 B2 JP3624647 B2 JP 3624647B2 JP 26717497 A JP26717497 A JP 26717497A JP 26717497 A JP26717497 A JP 26717497A JP 3624647 B2 JP3624647 B2 JP 3624647B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- directory
- data
- type
- entry
- 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.)
- Expired - Fee Related
Links
Images
Description
【0001】
【発明の属する技術分野】
本発明は、ディレクトリの階層構造によってファイルを管理するファイル管理装置、ファイル管理方法、記録媒体及びファイル管理システムに関する。
【0002】
【従来の技術】
従来より、例えばパーソナルコンピュータ等(以下、「PC」という。)では、ディレクトリの階層構造を形成してファイルを管理することが行われている。
【0003】
この場合、PCは、単にディレクトリの構造だけを管理して、ディレクトリ内のファイルの種別や用途については何も管理していなかった。
【0004】
【発明が解決しようとする課題】
すなわち、PCは、一のディレクトリ内に数種類のファイルが含まれることが多く、ファイルの種別や用途毎に管理する場合には全てのファイルに対してその種別等を調べる必要があり、ファイルの管理をするには時間がかかることがあった。また、このようなディレクトリにはファイルを管理するための情報が多く記憶されているため、これらのディレクトリが破壊されたときはファイルを管理することが全くできなくなる問題も生じた。
【0005】
また、PCは、アプリケーションにかかわる部分をファイルから排除しているため、アプリケーションを作る側で個別の情報を保持・管理する必要性もあった。
【0006】
本発明は、このような実情に鑑みて提案されたものであり、ファイルの管理を容易かつ高速に行うことができるファイル管理装置、ファイル管理方法、記録媒体及びファイル管理システムを提供することを目的とする。
【0007】
【課題を解決するための手段】
上述の課題を解決するために、本発明に係るファイル管理装置は、ファイル番号を有するファイルと、ファイル番号とこのファイル番号が示すファイルを取り扱うことができるかを示す対象フラグ情報とからなるディレクトリエントリをファイル毎に有するディレクトリとを記憶する記憶手段と、記憶された一のディレクトリのディレクトリエントリのファイル番号が示すファイルを上記一のディレクトリの下の階層になるように管理する管理手段とを備え、上記対象フラグは、ファイルの種別が該ファイルの属するディレクトリの種別と一致するか否かを示し、上記管理手段は、上記記憶手段から読み出した上記一のディレクトリの各対象フラグ情報に基づいて上記一のディレクトリと各ファイルの種別が一致するかを判定することを特徴とする。
【0008】
また、本発明に係るファイル管理方法は、ファイル番号を有するファイルと、ファイル番号とそのファイル番号の示すファイルを取り扱うことができるかを示す対象フラグ情報とからなるディレクトリエントリをファイル毎に有するディレクトリとを記憶し、記憶された一のディレクトリのディレクトリエントリのファイル番号が示すファイルを上記一のディレクトリの下の階層になるように管理し、一のディレクトリの各対象フラグ情報を読み出し、上記対象フラグは、ファイルの種別が該ファイルの属するディレクトリの種別と一致するか否かを示しており、読み出した上記一のディレクトリの各対象フラグ情報に基づいて上記一のディレクトリと各ファイルの種別が一致するかを判定することを特徴とする。
【0009】
更に、本発明に係る記録媒体は、ファイル番号を有するファイルと、ファイル番号とそのファイル番号の示すファイルを取り扱うことができるかを示す対象フラグ情報とからなるディレクトリエントリをファイル毎に有するディレクトリとを記憶し、上記対象フラグは、ファイルの種別が該ファイルの属するディレクトリの種別と一致するか否かを示し、上記記憶された一のディレクトリのディレクトリエントリのファイル番号が示すファイルは、上記一のディレクトリの下の階層になるように管理され、上記一のディレクトリの各対象フラグ情報に基づいて上記一のディレクトリと各ファイルの種別が一致するか否かが判定されることを特徴とする。
【0010】
更に、本発明に係るファイル管理システムは、ファイル番号を有するファイルと、ファイル番号とそのファイル番号の示すファイルを取り扱うことができるかを示す対象フラグ情報とからなるディレクトリエントリをファイル毎に有するディレクトリとを記憶する記録媒体と、上記記録媒体から読み出されたファイルとディレクトリとを記憶する記憶手段と、記憶された一のディレクトリのディレクトリエントリのファイル番号が示すファイルを上記一のディレクトリの下の階層になるように管理する管理手段とを有するファイル管理装置とを備え、上記対象フラグは、ファイルの種別が該ファイルの属するディレクトリの種別と一致するか否かを示し、上記ファイル管理装置の管理手段は、上記記憶手段から読み出した上記一のディレクトリの各対象フラグ情報に基づいて上記一のディレクトリと各ファイルの種別が一致するかを判定することを特徴とする。
【0011】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【0012】
本発明は、図1に示す構成のメモリカードシステム1に適用される。メモリカードシステム1は、ホストコンピュータ10とメモリカード20により構成される。
【0013】
上記ホストコンピュータ1は、具体的には図1に示すように、静止画像や音声等の様々なファイルデータやディレクトリデータ等を記憶するハードディスク11と、ハードディスク11等からのファイルデータ等を一旦記憶して読み出すRAM(Random Access Memory)12と、3本のラインを介してメモリカード20とのデータの送受信を行う第1のシリアルインターフェース(以下、「第1のシリアルI/F」という。)13と、各回路を制御するCPU(Central Processing Unit)14とを備え、例えばハードディスク11に記憶されている画像や音声等のファイルデータをディレクトリを用いた階層構造によって管理することができる。
【0014】
RAM12は、例えばハードディスク11に記憶されているファイルデータを一旦記憶し、必要に応じてこのファイルデータをバスを介して第1のシリアルI/F13に供給する。
【0015】
第1のシリアルI/F13は、3本のラインを介して、メモリカード20にデータを送信したり、メモリカード20に記憶されているデータを受信する。具体的には、第1のシリアルI/F13は、第1のラインを介して、上記制御データやファイルデータの送信の際のシリアルクロックSCKを送信する。第1のシリアルI/F13は、第2のラインを介して、第1のラインでのファイルデータ又は制御データ等のシリアルデータの切り換えに応じて、そのときの状態を示すチップセレクト信号CSを出力する。さらに、第1のシリアルI/F13は、第3のラインを介して、メモリカード20に書き込むためのファイルデータや制御データを送信したり、メモリカード20から読み出されたファイルデータを受信する。
【0016】
CPU14は、RAM12やハードディスク11のファイルデータを読み出したり、RAM12等にファイルデータを書き込むことを制御したり、メモリカード20とファイルデータ等の送受信の制御も行う。例えば、CPU14は、メモリカード20の図示しない誤消去防止スイッチのライトプロテクトがオンになっているかを判定するためのレジスタ命令を発行したり、メモリカード20に対してアドレスを指定して所定のファイルデータの書込み命令を発行する。
【0017】
ここで、メモリカード20は、図1に示すように、上記ホストコンピュータ1からのファイルデータや制御データをシリアルで送受信する第2のシリアルI/F21と、ファイルデータを記憶するフラッシュメモリ22と、フラッシュメモリ22に記憶されているファイルデータの読出し又は書込みを制御するコントローラ23とを備える。
【0018】
上記フラッシュメモリ22は、例えばNAND型のものであり、図2に示すように、ホストコンピュータ1から送信されたファイルデータが消去単位となるブロック毎に分割して記憶される。各ブロック0,1,2,・・・,nは、ファイルデータ等を512バイト記憶するデータエリアと16バイトの冗長エリアとによってなる1ページ(=512バイト+16バイト)が集合して構成される。上記冗長エリアには、当該ブロックのデータエリアにあるデータを管理する分散管理情報が記憶されている。なお、これらの分散管理情報が集合すると集合管理情報(集合管理ファイル)が構成される。集合管理ファイルは、数ブロックで構成されて、全てのブロックのデータの状態を一括して管理するものである。
【0019】
各ページの分散管理情報は、図3に示すように、「ブロック可/不可情報」(1バイト),「ブロックフラグ」(1バイト),「ブロック最終フラグ」(4ビット),「参照フラグ」(4ビット),「管理フラグ」(1バイト),「論理アドレス」(2バイト),「連結アドレス」(2バイト),「フォーマットリザーブ」(3バイト),「分散情報ECC」(2バイト),「データECC」(3バイト)を有する。
【0020】
「ブロック可/不可情報」は、当該ブロックが使用可能な状態か使用不可能な状態かを識別するための情報である。例えば、ブロックが破損して使用不可能になった場合、「ブロック可/不可情報」は、オーバーライトされることによって、そのブロックが使用不可能であることを示すものである。「ブロックフラグ」は、当該ブロックにデータが書き込まれておらずまだ使用されていない状態を示したり、ファイルの先頭で使用されているブロックであることを示したり、ファイルの先頭以外で当該ブロックが使用されていることを示したり、消去や書換等でこのブロックが不要となった場合に使用済みにしておいて後から消去することを示したりするものである。「ブロック最終フラグ」は、ブロックが連続して1ファイルを構成する場合において、当該ブロックが最終ブロックであるかを示す。なお、「ブロック最終フラグ」で当該ブロックが最終ブロックであることが示されているときは、「連結アドレス」は指定されていても無効となる。「参照フラグ」は、後述の追加情報の参照を指定するフラグである。この追加情報は、ブロックの最終ページに存在する。「管理フラグ」は、1バイトの情報である。このうち3ビット(bit2〜0)は、集合管理ファイルに格納される。また、残りの5ビットは、集合管理ファイルに格納されないが、エラー訂正処理等に用いられる。「論理アドレス」は、当該ブロックの論理アドレスを示す。なお、ルートディレクトリとなるディレクトリファイルのブロックでは、論理アドレス0である。「連結アドレス」は、当該ブロックと連結するブロックの論理アドレスを示す。なお、当該ブロックが最終ブロックであることが予め分かっているときは、「ブロック最終フラグ」を立てて、「連結アドレス」に「0xffff」がセットされる。当該ブロックが最終ブロックか分からないときは、論理アドレスを確保して、「連結アドレス」に設定する。当該ブロックが最終ブロックとなるときは、オーバーライトして「ブロック最終フラグ」を立てる。「フォーマットリザーブ」は、3バイトの情報であり、リザーブエリアである。「分散情報ECC」は、「管理フラグ」,「論理アドレス」,「連結アドレス」,「フォーマットリザーブ」の誤り訂正に用いられる。「データECC」は、分散管理情報以外のデータの誤り訂正を行うときに用いられる。
【0021】
ここで、ファイルデータは、画像や音声等のユーザファイル形式のものと、システム管理のためのシステムファイル形式のものとがあり、フラッシュメモリ22の1以上のブロックのデータエリアにおいて記憶される。
【0022】
ユーザファイル形式のファイルデータは、図4に示すように、属性情報である512バイトのヘッダ部と主情報であるデータ部によって構成される。ヘッダ部は、当該ファイルデータをメモリカード20内で管理するための情報である128バイトのOSヘッダと、汎用的で必要不可欠な管理情報である240バイトのファイルヘッダと、144バイトのエントリエリアとからなる。
【0023】
上記OSヘッダは、具体的には図5に示すように、ファイルID,ファイルバージョン,ファイルサイズ,使用ブロック数,リンク数,日付,メーカー/機種コード,初期登録ディレクトリ番号,検索キーワード,ファイル名,個別データを有する。
【0024】
ファイルIDは、ファイルの種別(用途)を表すものであり、ファイルヘッダにも同様のものがある。ファイルバージョンは、いわゆるバージョンナンバーを示すものであり、ホストコンピュータ10やメモリカード20においてこのファイルデータを処理することができるかを判定するために用いられる。ファイルサイズは、ヘッダ部及びデータ部からなる当該ファイルデータの全体の大きさをバイト数で示すものである。使用ブロック数は、フラッシュメモリ22で当該ファイルデータを使用しているブロック数を示すものである。リンク数は、ファイルデータと他のファイルデータ等が参照関係にある(リンクされている)ときのリンク数を示すものである。日付は、ファイルデータを作成した日付又は更新した日付を示すものである。メーカー/種別コードは、メモリカード20にファイルデータを書き込んだ機器のメーカー名及びその機種を示すものである。初期登録ディレクトリ番号は、最初に登録したディレクトリ番号を示すものであり、ファイルデータが別のディレクトリに移った場合でも更新されるものではない。キーワード登録数は、登録されたキーワードの数を示すものである。キーワード文字コードは、キーワードの文字コードを示したものである。キーワード文字列は、キーワード,セパレータを決めて複数指定をすることもできるものである。ファイル名は、PC10でファイルデータを管理するときに用いられるファイル名であり、メモリカード20内では特に使用されない。0リセットリザーブは、書換えの際に必ず0にしておくものである。個別データは、ファイルID毎に管理するためのもので、例えばファイルIDによって決められる用途で用いられるデータであり、利用者が自由に用いることができる。
【0025】
上記ファイルヘッダは、具体的には図6に示すように、「規格識別データ」,「ファイル規格識別データ」,「ファイルID」,「ファイルバージョン」,「アプリケーション作成日付」,「アプリケーション更新日付」,「作成メーカー/機種コード」,「更新メーカー/機種コード」,「0リセットリザーブ」,「データエントリ数」,「テーブル数」,「文字コード」,「タイトル文字列」を有する。
【0026】
「規格識別データ」は、当該フラッシュメモリ22が所定の規格に沿ってファイルデータを記憶していることを示すものである。「ファイル規格識別データ」は、当該ファイルデータが上記所定の規格に沿って作成されたことを示すものである。「ファイルID」は、ファイルの種別を表すものであり、OSヘッダにも同様のものがある。「ファイルバージョン」は、バージョンナンバーを示すものである。「アプリケーション作成日付」は、アプリケーションを作成した日付を示すものであり、「アプリケーション更新日付」は、それを更新した日付を示すものである。「作成メーカー/種別コード」は、ファイルデータを作成したメーカー及びその機種名を示すものであり、「更新メーカー/種別コード」は、そのファイルデータを更新したメーカー及びその機種名を示すものである。「データエントリ数」は、後述のエントリデータの数を示すものである。「テーブル数」は、テーブルデータ領域のデータ数を示すものである。「文字コード」は、入力文字を所定のコード番号で示したものである。「タイトル文字列」は、タイトル文字を示したものである。
【0027】
エントリエリアは、データ部において記憶された主となるデータ(エントリデータ)を管理するためのデータが記憶される。なお、データ部は、4つまでのエントリデータを格納することができる。すなわち、ヘッダ部とデータ部とからなるファイルデータは、最大で4つのエントリデータから構成される。なお、図4では、エントリデータとして、インデックス,画像データ,2つの補助データを例に挙げたが、特に限定されるものではなく、その他音声データ等であってもよい。したがって、エントリエリアは、上記4つのエントリデータを管理するために各エントリデータ毎に、開始アドレスと、サイズと、種別IDと、個別データとが記憶される。
【0028】
また、システムファイル形式のファイルデータは、例えばディレクトリファイルが該当し、ユーザファイル形式のものと比べて、ヘッダ部の構成が異なる。
【0029】
上記ディレクトリファイルのヘッダ部は、図7に示すように、OSヘッダと、ファイルヘッダと、システムエントリリストと、システムインフォメーションとを有する。なお、OSヘッダとファイルヘッダは、上述したユーザファイル形式のものと同様である。
【0030】
また、上記ディレクトリファイルのデータ部は、96バイトのディレクトリインフォメーションと、グループインフォメーションと、ディレクトリエントリのリストとを有する。
【0031】
ディレクトリインフォメーションは、図8に示すように、2バイトの「ディレクトリID」,1バイトの「対象ファイルID」,1バイトの「グループ数」,2バイトの「親ディレクトリ」,2バイトの「ディレクトリ数」,2バイトの「ファイル数(全ファイル)」,2バイトの「対象ファイル数」,2バイトの「アクセスポイント」,2バイトの「ディレクトリエントリ数」,2バイトの「システム用ディレクトリエントリ数」,2バイトの「使用システムディレクトリエントリ数」,2バイトの「確保ブロック数」,2バイトの「使用ブロック数」のデータがあり、さらに72バイトの未使用領域とを有する。
【0032】
このとき、「ディレクトリID」はディレクトリの種別を表し、「対象ファイル」は対象とするファイルのIDを示すものである。「グループ数」は登録されたグループの数であり、「親ディレクトリ」は親ディレクトリのファイル番号を示すものである。「ディレクトリ数」は含まれるディレクトリの総数を示し、「ファイル数(全ファイル)」は当該ディレクトリに含まれる全ファイルの数を示す。「対象ファイル数」は含まれる対象ファイル数を示し、「アクセスポイント」はアクセス開始ディレクトリエントリを示すものである。「ディレクトリエントリ数」は使用ユーザディレクトリエントリ数を示し、「システム用ディレクトリエントリ数」は確保システム用のディレクトリエントリ数を示す。「使用システムディレクトリエントリ数」システム用のディレクトリエントリ数を示し、「確保ブロック数」はアプリケーションで確保したいフラッシュメモリ22のブロック数を示し、「使用ブロック数」はアプリケーションで使用したブロック数を示す。
【0033】
グループインフォメーションは、図9に示すように、1バイトの「グループ番号」,1バイトの「グループインフォメーションサイズ」,2バイトの「ディレクトリID」,1バイトの「0リセットリザーブ」,3バイトの「リザーブ」,8バイトの「日付」,8バイトの「個別データ」,任意のバイト数の「タイトル」とを有する。「グループインフォメーションサイズ」は、グループインフォメーションの大きさを示すものであり、固定長24バイト+「タイトル」の任意バイト数の大きさになる。「ディレクトリID」はディレクトリ種別毎に付けられるIDであり、「0リセットリザーブ」は修正する場合は必ず0に設定するものである。「リザーブ」は当該ファイル作成時に0に設定するものである。「日付」は当該ファイルの作成日付を示し、これは使用者により変更可能である。「個別データ」は特に定められたものでなく、「タイトル」はディレクトリファイルのタイトルを示すものである。
【0034】
ディレクトリエントリのリストは、ユーザファイル形式のファイルデータの一部の属性情報を管理するディレクトリエントリが複数集合して構成される。なお、1つのディレクトリエントリは4バイトである。
【0035】
1ディレクトリエントリは、図10に示すように、2バイトの「ファイル番号」と、「属性情報」と、「グループ番号」とで構成される。
【0036】
ファイル番号は、図11に示すように、2バイト中の最初のビットには「0」があり、残りの15ビットにおいてファイル又はディレクトリの先頭論理アドレスが示されている。なお、「0xffff」が示されている時は、未使用を意味する。
【0037】
属性情報は、図12に示すように、「ディレクトリ/ファイル」と、「対象フラグ」と、「マーク1」と、「マーク2」と、「連続記録」の情報を有する。「ディレクトリ/ファイル」では、1のときは当該ディレクトリの下にさらにディレクトリがあることを示し、0のときはファイルがあることを示す。「対象フラグ」では、1のときは上述のディレクトリインフォメーションで指定した対象ファイルIDのファイルであることを示し、0のときはそれ以外のファイルデータであることを示す。「マーク1」では、1のときはマーク1指定のがあることを示し、0のときはかかる指定がないことを示す。「マーク2」については、「マーク1」と同様である。なお、「マーク1」及び「マーク2」は、利用者が指定できるマーキングフラグである。「連続記録」では、00のときは通常のファイル,11のときは先頭の連続ファイル,10のときは連続指定されたファイルであることを示す。
【0038】
「グループ番号」は、図13に示すように、8ビットで示され、1階層の疑似階層を示すグループ番号である。
【0039】
以上のように構成されたメモリカードシステム1において、ホストコンピュータ10のCPU14は、図14に示すステップS1〜ステップS7の処理を行うことによって、ディレクトリの管理を行うことができる。
【0040】
ステップS1において、CPU14は、フラッシュメモリ22からルートディレクトリ用のディレクトリファイルを読み込んでRAM12に格納して、ステップS2に進む。
【0041】
ステップS2において、CPU14は、上記ディレクトリファイルから目的のディレクトリインフォメーションを読み込んでステップS3に進み、上記グループインフォメーション内のディレクトリIDをチェックして、ステップS4に進む。
【0042】
ステップS4において、CPU14は、このディレクトリIDが示すデータに対応することができるか、すなわち、このディレクトリを取り扱うことができるかを判定し、対応できると判定したときはステップS5に進み、対応できないと判定したときはステップS7に進む。
【0043】
ステップS5において、CPU14は、ディレクトリID別に定義されたフォーマットに従って個別データを読み込みを行ってステップS6に進み、そして、この個別データをアプリケーションの情報として利用する。
【0044】
これにより、例えば論理アドレス05のディレクトリはカメラ専用、論理アドレス10のディレクトリは音楽専用のものにするように、予めディレクトリの用途を規定しておけば、全てのディレクトリの内容を調べないで、ディレクトリの用途を容易に管理することができる。すなわち、ホストコンピュータ10では、ある用途毎に利用できるディレクトリを設けているため、アプリケーションで専用管理ファイルを準備する必要がなくなり、別管理をする手間を省くことができる。
【0045】
また、個別データにアプリケーションの利用を想定したデータを入れておくことによって、ホストコンピュータ10がサポートしていないディレクトリに対しても基本処理を実行することができる。
【0046】
例えば、グループインフォメーションの個別データを利用して、グループ分類に使用するアイコンデータとのリンクを定義することができる。カメラ専用ディレクトリの個別データを用いることによって、一覧表示を行う際のBGMとなるオーディオデータを有するディレクトリともリンクすることができる。音楽ディレクトリの個別データを用いて、アルバムのジャケットや歌詞カードのデータにリンクしたり、総演奏時間の管理を行うこともできる。また、ディレクトリIDによってターゲットとして扱う対象ファイルIDが決められているため、指定されたIDのファイル数を管理することによって、例えばカメラならば撮影枚数、音楽ならば曲数等を管理することができる。
【0047】
一方、ステップS4において対応できないと判定したときのステップS7において、CPU14は、対応可能なアプリケーションの情報はないものとしてこのディレクトリを取り扱う。なお、このディレクトリをコピーしたり、他の機器に送信すること等は可能である。
【0048】
また、ホストコンピュータ10のCPU14は、図15に示すステップS11〜ステップS17の処理を行うことによって、ファイルの管理も行うことができる。
【0049】
ステップS11において、CPU14は、フラッシュメモリ22から所定のファイルを読み出してRAM12に格納し、そのファイルのファイルヘッダの読み込みを行ってステップS12に進み、ファイルIDをチェックして、ステップS3に進む。
【0050】
ステップS13において、CPU14は、このファイルIDが示すデータに対応することができるか、すなわち、そのファイルを取り扱うことができるかを判定して、対応できると判定したときはステップS14に進み、対応できないと判定したときはステップS17に進む。
【0051】
ステップS14において、CPU14は、ファイルID別に定義されたフォーマットに従って個別データを読み込んでステップS15に進み、この個別データをアプリケーションの情報として利用して、ステップS16に進む。
【0052】
ステップS16において、CPU14は、エントリリストのデータ種別IDを調べて、個別データエリアを含めて必要なデータ処理を実行する。
【0053】
これにより、全てのファイルの内容を調べることなくファイルの用途を容易に管理することができる。すなわち、ホストコンピュータ10では、ある用途毎に利用できるディレクトリ及びファイルを設けているため、アプリケーションで専用管理ファイルを準備する必要がなくなり、別管理をする手間を省くことができる。
【0054】
一方、ステップS13でファイルIDに示すデータに対応することができないと判定したときのステップS17において、CPU14は、対応可能なアプリケーションの情報はないものとしてこのファイルを取り扱う。なお、このディレクトリをコピーしたり、他の機器に送信すること等は可能である。また、データ種別IDによって取り扱うことができるデータがあれば、そのデータ処理を実行することはできる。
【0055】
つぎに、ディレクトリが破壊されたときのディレクトリ復活処理について図16を用いて説明する。すなわち、CPU14は、ディレクトリが破壊されたときは、ステップS21以降の処理を行うことによってディレクトリを作成し、ファイルの管理を行うことができる。
【0056】
ステップS21において、CPU14は、ルートディレクトリがあるかを判定し、ルートディレクトリがあるときはステップS23に進み、ルートディレクトリがないときはステップS22に進む。
【0057】
ステップS22において、CPU14は、空きのルートディレクトリを作成してステップS23に進む。
【0058】
ステップS23において、未処理のディレクトリがあるか、換言すると、ルートディレクトリに登録されていないディレクトリがあるかを判定する。そして、未処理のディレクトリがあるときはステップS24に進み、未処理のディレクトリがないときはステップS25に進む。
【0059】
ステップS24において、CPU14は、未処理のディレクトリIDを調べて、このディレクトリIDを上記ルートディレクトリに登録する。例えば、図8に示す「ディレクトリ数」を更新したり、ディレクトリエントリリスト内の図10に示す1ディレクトリエントリとして、未処理のディレクトリファイルの先頭論理アドレスを登録したりして、ステップS23に戻る。なお、ルートディレクトリに限らず、他のディレクトリに未処理のディレクトリが登録されることもある。これにより、ルートディレクトリを幹としたディレクトリの階層構造が決定される。
【0060】
ステップS25において、CPU14は、未処理のファイルがあるか、すなわちディレクトリに登録されていないファイルがあるかを判定し、未処理のファイルがあるときはステップS26に進む。なお、未処理のファイルがないときは、各ディレクトリと各ファイルとの階層構造の構築は完成されているため、処理を終了する。
【0061】
ステップS26において、CPU14は、当該未処理ファイルのファイルIDと同じものがあるかを、全てのディレクトリのディレクトリIDを調べて、ステップS27に進む。
【0062】
ステップS27において、CPU14は、未処理ファイルのファイルIDと一致するディレクトリIDがあるかを判定し、一致するディレクトリIDがあるとき、すなわち上記ファイルに対応するディレクトリがあるときはステップS29に進む。また、一致するディレクトリIDがないとき、すなわち上記ファイルに対応するディレクトリがないときはステップS28に進む。
【0063】
ステップS28において、CPU14は、上記未処理のファイルを登録するために必要なディレクトリを新たに作成し、このディレクトリをルートディレクトリに登録して、ステップS29に進む。
【0064】
ステップS29において、CPU14は、新たに作成されたディレクトリに上記未処理ファイルを登録して、ステップS25に戻る。ここでは、例えば図8に示す「ファイル数」を更新したり、ディレクトリエントリリスト内の図10に示す1ディレクトリエントリとして、未処理のファイルの先頭論理アドレスを登録したりする。そして、未処理のファイルが無くなるまでステップS25からステップS29の処理を実行することによって、全てのファイルをディレクトリに登録して、階層構造を構築することができる。
【0065】
したがって、ディレクトリが破壊されることによって遊離するディレクトリやファイルがあったとしても、そのディレクトリやファイルのIDによって元のディレクトリを作成することができるので、ディレクトリやファイルの管理の信頼性を高めることができる。
【0066】
なお、本実施の形態では、フラッシュメモリ22に記憶されたファイルやディレクトリの管理方法について説明したが、本発明はこれに限定されるものではなく、通常のコンピュータ等におけるデータの管理にも適用することができるのは勿論である。
【0067】
【発明の効果】
本発明に係るファイル管理装置、ファイル管理方法、記録媒体及びファイル管理システムによれば、読み出した上記一のディレクトリの各対象フラグ情報に基づいて上記一のディレクトリと各ファイルの種別が一致するかを判定することによって、所定のファイルに対して高速にアクセスすることができる。
【図面の簡単な説明】
【図1】本発明を適用したメモリカードシステムの構成を示すブロック図である。
【図2】上記メモリカードシステムのメモリカード内のフラッシュメモリに格納される
データの構成を説明するための図である。
【図3】上記フラッシュメモリに格納されるデータの分散管理情報の構成を説明するための図である。
【図4】上記フラッシュメモリに格納されるファイルデータの構成を説明するための図である。
【図5】上記ファイルデータのOSヘッダの構成を説明するための図である。
【図6】上記ファイルデータのファイルヘッダ及びエントリエリアの構成を説明するための図である。
【図7】ディレクトリファイルの構成を説明するための図である。
【図8】上記ディレクトリファイルのディレクトリインフォメーションの構成を説明するための図である。
【図9】上記ディレクトリファイルのグループインフォメーションの構成を説明するための図である。
【図10】上記ディレクトリファイルのディレクトリエントリの構成を説明するための図である。
【図11】上記ディレクトリエントリのファイル番号を説明するための図である。
【図12】上記ディレクトリエントリの属性情報を説明するための図である。
【図13】上記ディレクトリエントリのグループ番号を説明するための図である。
【図14】ディレクトリを管理するときのCPUの動作を説明するフローチャートである。
【図15】ファイルを管理するときのCPUの動作を説明するフローチャートである。
【図16】ディレクトリが破壊された場合にディレクトリを復活させるときの動作を説明するフローチャートである。
【符号の説明】
1 メモリカードシステム、10 ホストコンピュータ、12 RAM、14 CPU、20 メモリカード、22 フラッシュメモリ、23 コントローラ
【発明の属する技術分野】
本発明は、ディレクトリの階層構造によってファイルを管理するファイル管理装置、ファイル管理方法、記録媒体及びファイル管理システムに関する。
【0002】
【従来の技術】
従来より、例えばパーソナルコンピュータ等(以下、「PC」という。)では、ディレクトリの階層構造を形成してファイルを管理することが行われている。
【0003】
この場合、PCは、単にディレクトリの構造だけを管理して、ディレクトリ内のファイルの種別や用途については何も管理していなかった。
【0004】
【発明が解決しようとする課題】
すなわち、PCは、一のディレクトリ内に数種類のファイルが含まれることが多く、ファイルの種別や用途毎に管理する場合には全てのファイルに対してその種別等を調べる必要があり、ファイルの管理をするには時間がかかることがあった。また、このようなディレクトリにはファイルを管理するための情報が多く記憶されているため、これらのディレクトリが破壊されたときはファイルを管理することが全くできなくなる問題も生じた。
【0005】
また、PCは、アプリケーションにかかわる部分をファイルから排除しているため、アプリケーションを作る側で個別の情報を保持・管理する必要性もあった。
【0006】
本発明は、このような実情に鑑みて提案されたものであり、ファイルの管理を容易かつ高速に行うことができるファイル管理装置、ファイル管理方法、記録媒体及びファイル管理システムを提供することを目的とする。
【0007】
【課題を解決するための手段】
上述の課題を解決するために、本発明に係るファイル管理装置は、ファイル番号を有するファイルと、ファイル番号とこのファイル番号が示すファイルを取り扱うことができるかを示す対象フラグ情報とからなるディレクトリエントリをファイル毎に有するディレクトリとを記憶する記憶手段と、記憶された一のディレクトリのディレクトリエントリのファイル番号が示すファイルを上記一のディレクトリの下の階層になるように管理する管理手段とを備え、上記対象フラグは、ファイルの種別が該ファイルの属するディレクトリの種別と一致するか否かを示し、上記管理手段は、上記記憶手段から読み出した上記一のディレクトリの各対象フラグ情報に基づいて上記一のディレクトリと各ファイルの種別が一致するかを判定することを特徴とする。
【0008】
また、本発明に係るファイル管理方法は、ファイル番号を有するファイルと、ファイル番号とそのファイル番号の示すファイルを取り扱うことができるかを示す対象フラグ情報とからなるディレクトリエントリをファイル毎に有するディレクトリとを記憶し、記憶された一のディレクトリのディレクトリエントリのファイル番号が示すファイルを上記一のディレクトリの下の階層になるように管理し、一のディレクトリの各対象フラグ情報を読み出し、上記対象フラグは、ファイルの種別が該ファイルの属するディレクトリの種別と一致するか否かを示しており、読み出した上記一のディレクトリの各対象フラグ情報に基づいて上記一のディレクトリと各ファイルの種別が一致するかを判定することを特徴とする。
【0009】
更に、本発明に係る記録媒体は、ファイル番号を有するファイルと、ファイル番号とそのファイル番号の示すファイルを取り扱うことができるかを示す対象フラグ情報とからなるディレクトリエントリをファイル毎に有するディレクトリとを記憶し、上記対象フラグは、ファイルの種別が該ファイルの属するディレクトリの種別と一致するか否かを示し、上記記憶された一のディレクトリのディレクトリエントリのファイル番号が示すファイルは、上記一のディレクトリの下の階層になるように管理され、上記一のディレクトリの各対象フラグ情報に基づいて上記一のディレクトリと各ファイルの種別が一致するか否かが判定されることを特徴とする。
【0010】
更に、本発明に係るファイル管理システムは、ファイル番号を有するファイルと、ファイル番号とそのファイル番号の示すファイルを取り扱うことができるかを示す対象フラグ情報とからなるディレクトリエントリをファイル毎に有するディレクトリとを記憶する記録媒体と、上記記録媒体から読み出されたファイルとディレクトリとを記憶する記憶手段と、記憶された一のディレクトリのディレクトリエントリのファイル番号が示すファイルを上記一のディレクトリの下の階層になるように管理する管理手段とを有するファイル管理装置とを備え、上記対象フラグは、ファイルの種別が該ファイルの属するディレクトリの種別と一致するか否かを示し、上記ファイル管理装置の管理手段は、上記記憶手段から読み出した上記一のディレクトリの各対象フラグ情報に基づいて上記一のディレクトリと各ファイルの種別が一致するかを判定することを特徴とする。
【0011】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【0012】
本発明は、図1に示す構成のメモリカードシステム1に適用される。メモリカードシステム1は、ホストコンピュータ10とメモリカード20により構成される。
【0013】
上記ホストコンピュータ1は、具体的には図1に示すように、静止画像や音声等の様々なファイルデータやディレクトリデータ等を記憶するハードディスク11と、ハードディスク11等からのファイルデータ等を一旦記憶して読み出すRAM(Random Access Memory)12と、3本のラインを介してメモリカード20とのデータの送受信を行う第1のシリアルインターフェース(以下、「第1のシリアルI/F」という。)13と、各回路を制御するCPU(Central Processing Unit)14とを備え、例えばハードディスク11に記憶されている画像や音声等のファイルデータをディレクトリを用いた階層構造によって管理することができる。
【0014】
RAM12は、例えばハードディスク11に記憶されているファイルデータを一旦記憶し、必要に応じてこのファイルデータをバスを介して第1のシリアルI/F13に供給する。
【0015】
第1のシリアルI/F13は、3本のラインを介して、メモリカード20にデータを送信したり、メモリカード20に記憶されているデータを受信する。具体的には、第1のシリアルI/F13は、第1のラインを介して、上記制御データやファイルデータの送信の際のシリアルクロックSCKを送信する。第1のシリアルI/F13は、第2のラインを介して、第1のラインでのファイルデータ又は制御データ等のシリアルデータの切り換えに応じて、そのときの状態を示すチップセレクト信号CSを出力する。さらに、第1のシリアルI/F13は、第3のラインを介して、メモリカード20に書き込むためのファイルデータや制御データを送信したり、メモリカード20から読み出されたファイルデータを受信する。
【0016】
CPU14は、RAM12やハードディスク11のファイルデータを読み出したり、RAM12等にファイルデータを書き込むことを制御したり、メモリカード20とファイルデータ等の送受信の制御も行う。例えば、CPU14は、メモリカード20の図示しない誤消去防止スイッチのライトプロテクトがオンになっているかを判定するためのレジスタ命令を発行したり、メモリカード20に対してアドレスを指定して所定のファイルデータの書込み命令を発行する。
【0017】
ここで、メモリカード20は、図1に示すように、上記ホストコンピュータ1からのファイルデータや制御データをシリアルで送受信する第2のシリアルI/F21と、ファイルデータを記憶するフラッシュメモリ22と、フラッシュメモリ22に記憶されているファイルデータの読出し又は書込みを制御するコントローラ23とを備える。
【0018】
上記フラッシュメモリ22は、例えばNAND型のものであり、図2に示すように、ホストコンピュータ1から送信されたファイルデータが消去単位となるブロック毎に分割して記憶される。各ブロック0,1,2,・・・,nは、ファイルデータ等を512バイト記憶するデータエリアと16バイトの冗長エリアとによってなる1ページ(=512バイト+16バイト)が集合して構成される。上記冗長エリアには、当該ブロックのデータエリアにあるデータを管理する分散管理情報が記憶されている。なお、これらの分散管理情報が集合すると集合管理情報(集合管理ファイル)が構成される。集合管理ファイルは、数ブロックで構成されて、全てのブロックのデータの状態を一括して管理するものである。
【0019】
各ページの分散管理情報は、図3に示すように、「ブロック可/不可情報」(1バイト),「ブロックフラグ」(1バイト),「ブロック最終フラグ」(4ビット),「参照フラグ」(4ビット),「管理フラグ」(1バイト),「論理アドレス」(2バイト),「連結アドレス」(2バイト),「フォーマットリザーブ」(3バイト),「分散情報ECC」(2バイト),「データECC」(3バイト)を有する。
【0020】
「ブロック可/不可情報」は、当該ブロックが使用可能な状態か使用不可能な状態かを識別するための情報である。例えば、ブロックが破損して使用不可能になった場合、「ブロック可/不可情報」は、オーバーライトされることによって、そのブロックが使用不可能であることを示すものである。「ブロックフラグ」は、当該ブロックにデータが書き込まれておらずまだ使用されていない状態を示したり、ファイルの先頭で使用されているブロックであることを示したり、ファイルの先頭以外で当該ブロックが使用されていることを示したり、消去や書換等でこのブロックが不要となった場合に使用済みにしておいて後から消去することを示したりするものである。「ブロック最終フラグ」は、ブロックが連続して1ファイルを構成する場合において、当該ブロックが最終ブロックであるかを示す。なお、「ブロック最終フラグ」で当該ブロックが最終ブロックであることが示されているときは、「連結アドレス」は指定されていても無効となる。「参照フラグ」は、後述の追加情報の参照を指定するフラグである。この追加情報は、ブロックの最終ページに存在する。「管理フラグ」は、1バイトの情報である。このうち3ビット(bit2〜0)は、集合管理ファイルに格納される。また、残りの5ビットは、集合管理ファイルに格納されないが、エラー訂正処理等に用いられる。「論理アドレス」は、当該ブロックの論理アドレスを示す。なお、ルートディレクトリとなるディレクトリファイルのブロックでは、論理アドレス0である。「連結アドレス」は、当該ブロックと連結するブロックの論理アドレスを示す。なお、当該ブロックが最終ブロックであることが予め分かっているときは、「ブロック最終フラグ」を立てて、「連結アドレス」に「0xffff」がセットされる。当該ブロックが最終ブロックか分からないときは、論理アドレスを確保して、「連結アドレス」に設定する。当該ブロックが最終ブロックとなるときは、オーバーライトして「ブロック最終フラグ」を立てる。「フォーマットリザーブ」は、3バイトの情報であり、リザーブエリアである。「分散情報ECC」は、「管理フラグ」,「論理アドレス」,「連結アドレス」,「フォーマットリザーブ」の誤り訂正に用いられる。「データECC」は、分散管理情報以外のデータの誤り訂正を行うときに用いられる。
【0021】
ここで、ファイルデータは、画像や音声等のユーザファイル形式のものと、システム管理のためのシステムファイル形式のものとがあり、フラッシュメモリ22の1以上のブロックのデータエリアにおいて記憶される。
【0022】
ユーザファイル形式のファイルデータは、図4に示すように、属性情報である512バイトのヘッダ部と主情報であるデータ部によって構成される。ヘッダ部は、当該ファイルデータをメモリカード20内で管理するための情報である128バイトのOSヘッダと、汎用的で必要不可欠な管理情報である240バイトのファイルヘッダと、144バイトのエントリエリアとからなる。
【0023】
上記OSヘッダは、具体的には図5に示すように、ファイルID,ファイルバージョン,ファイルサイズ,使用ブロック数,リンク数,日付,メーカー/機種コード,初期登録ディレクトリ番号,検索キーワード,ファイル名,個別データを有する。
【0024】
ファイルIDは、ファイルの種別(用途)を表すものであり、ファイルヘッダにも同様のものがある。ファイルバージョンは、いわゆるバージョンナンバーを示すものであり、ホストコンピュータ10やメモリカード20においてこのファイルデータを処理することができるかを判定するために用いられる。ファイルサイズは、ヘッダ部及びデータ部からなる当該ファイルデータの全体の大きさをバイト数で示すものである。使用ブロック数は、フラッシュメモリ22で当該ファイルデータを使用しているブロック数を示すものである。リンク数は、ファイルデータと他のファイルデータ等が参照関係にある(リンクされている)ときのリンク数を示すものである。日付は、ファイルデータを作成した日付又は更新した日付を示すものである。メーカー/種別コードは、メモリカード20にファイルデータを書き込んだ機器のメーカー名及びその機種を示すものである。初期登録ディレクトリ番号は、最初に登録したディレクトリ番号を示すものであり、ファイルデータが別のディレクトリに移った場合でも更新されるものではない。キーワード登録数は、登録されたキーワードの数を示すものである。キーワード文字コードは、キーワードの文字コードを示したものである。キーワード文字列は、キーワード,セパレータを決めて複数指定をすることもできるものである。ファイル名は、PC10でファイルデータを管理するときに用いられるファイル名であり、メモリカード20内では特に使用されない。0リセットリザーブは、書換えの際に必ず0にしておくものである。個別データは、ファイルID毎に管理するためのもので、例えばファイルIDによって決められる用途で用いられるデータであり、利用者が自由に用いることができる。
【0025】
上記ファイルヘッダは、具体的には図6に示すように、「規格識別データ」,「ファイル規格識別データ」,「ファイルID」,「ファイルバージョン」,「アプリケーション作成日付」,「アプリケーション更新日付」,「作成メーカー/機種コード」,「更新メーカー/機種コード」,「0リセットリザーブ」,「データエントリ数」,「テーブル数」,「文字コード」,「タイトル文字列」を有する。
【0026】
「規格識別データ」は、当該フラッシュメモリ22が所定の規格に沿ってファイルデータを記憶していることを示すものである。「ファイル規格識別データ」は、当該ファイルデータが上記所定の規格に沿って作成されたことを示すものである。「ファイルID」は、ファイルの種別を表すものであり、OSヘッダにも同様のものがある。「ファイルバージョン」は、バージョンナンバーを示すものである。「アプリケーション作成日付」は、アプリケーションを作成した日付を示すものであり、「アプリケーション更新日付」は、それを更新した日付を示すものである。「作成メーカー/種別コード」は、ファイルデータを作成したメーカー及びその機種名を示すものであり、「更新メーカー/種別コード」は、そのファイルデータを更新したメーカー及びその機種名を示すものである。「データエントリ数」は、後述のエントリデータの数を示すものである。「テーブル数」は、テーブルデータ領域のデータ数を示すものである。「文字コード」は、入力文字を所定のコード番号で示したものである。「タイトル文字列」は、タイトル文字を示したものである。
【0027】
エントリエリアは、データ部において記憶された主となるデータ(エントリデータ)を管理するためのデータが記憶される。なお、データ部は、4つまでのエントリデータを格納することができる。すなわち、ヘッダ部とデータ部とからなるファイルデータは、最大で4つのエントリデータから構成される。なお、図4では、エントリデータとして、インデックス,画像データ,2つの補助データを例に挙げたが、特に限定されるものではなく、その他音声データ等であってもよい。したがって、エントリエリアは、上記4つのエントリデータを管理するために各エントリデータ毎に、開始アドレスと、サイズと、種別IDと、個別データとが記憶される。
【0028】
また、システムファイル形式のファイルデータは、例えばディレクトリファイルが該当し、ユーザファイル形式のものと比べて、ヘッダ部の構成が異なる。
【0029】
上記ディレクトリファイルのヘッダ部は、図7に示すように、OSヘッダと、ファイルヘッダと、システムエントリリストと、システムインフォメーションとを有する。なお、OSヘッダとファイルヘッダは、上述したユーザファイル形式のものと同様である。
【0030】
また、上記ディレクトリファイルのデータ部は、96バイトのディレクトリインフォメーションと、グループインフォメーションと、ディレクトリエントリのリストとを有する。
【0031】
ディレクトリインフォメーションは、図8に示すように、2バイトの「ディレクトリID」,1バイトの「対象ファイルID」,1バイトの「グループ数」,2バイトの「親ディレクトリ」,2バイトの「ディレクトリ数」,2バイトの「ファイル数(全ファイル)」,2バイトの「対象ファイル数」,2バイトの「アクセスポイント」,2バイトの「ディレクトリエントリ数」,2バイトの「システム用ディレクトリエントリ数」,2バイトの「使用システムディレクトリエントリ数」,2バイトの「確保ブロック数」,2バイトの「使用ブロック数」のデータがあり、さらに72バイトの未使用領域とを有する。
【0032】
このとき、「ディレクトリID」はディレクトリの種別を表し、「対象ファイル」は対象とするファイルのIDを示すものである。「グループ数」は登録されたグループの数であり、「親ディレクトリ」は親ディレクトリのファイル番号を示すものである。「ディレクトリ数」は含まれるディレクトリの総数を示し、「ファイル数(全ファイル)」は当該ディレクトリに含まれる全ファイルの数を示す。「対象ファイル数」は含まれる対象ファイル数を示し、「アクセスポイント」はアクセス開始ディレクトリエントリを示すものである。「ディレクトリエントリ数」は使用ユーザディレクトリエントリ数を示し、「システム用ディレクトリエントリ数」は確保システム用のディレクトリエントリ数を示す。「使用システムディレクトリエントリ数」システム用のディレクトリエントリ数を示し、「確保ブロック数」はアプリケーションで確保したいフラッシュメモリ22のブロック数を示し、「使用ブロック数」はアプリケーションで使用したブロック数を示す。
【0033】
グループインフォメーションは、図9に示すように、1バイトの「グループ番号」,1バイトの「グループインフォメーションサイズ」,2バイトの「ディレクトリID」,1バイトの「0リセットリザーブ」,3バイトの「リザーブ」,8バイトの「日付」,8バイトの「個別データ」,任意のバイト数の「タイトル」とを有する。「グループインフォメーションサイズ」は、グループインフォメーションの大きさを示すものであり、固定長24バイト+「タイトル」の任意バイト数の大きさになる。「ディレクトリID」はディレクトリ種別毎に付けられるIDであり、「0リセットリザーブ」は修正する場合は必ず0に設定するものである。「リザーブ」は当該ファイル作成時に0に設定するものである。「日付」は当該ファイルの作成日付を示し、これは使用者により変更可能である。「個別データ」は特に定められたものでなく、「タイトル」はディレクトリファイルのタイトルを示すものである。
【0034】
ディレクトリエントリのリストは、ユーザファイル形式のファイルデータの一部の属性情報を管理するディレクトリエントリが複数集合して構成される。なお、1つのディレクトリエントリは4バイトである。
【0035】
1ディレクトリエントリは、図10に示すように、2バイトの「ファイル番号」と、「属性情報」と、「グループ番号」とで構成される。
【0036】
ファイル番号は、図11に示すように、2バイト中の最初のビットには「0」があり、残りの15ビットにおいてファイル又はディレクトリの先頭論理アドレスが示されている。なお、「0xffff」が示されている時は、未使用を意味する。
【0037】
属性情報は、図12に示すように、「ディレクトリ/ファイル」と、「対象フラグ」と、「マーク1」と、「マーク2」と、「連続記録」の情報を有する。「ディレクトリ/ファイル」では、1のときは当該ディレクトリの下にさらにディレクトリがあることを示し、0のときはファイルがあることを示す。「対象フラグ」では、1のときは上述のディレクトリインフォメーションで指定した対象ファイルIDのファイルであることを示し、0のときはそれ以外のファイルデータであることを示す。「マーク1」では、1のときはマーク1指定のがあることを示し、0のときはかかる指定がないことを示す。「マーク2」については、「マーク1」と同様である。なお、「マーク1」及び「マーク2」は、利用者が指定できるマーキングフラグである。「連続記録」では、00のときは通常のファイル,11のときは先頭の連続ファイル,10のときは連続指定されたファイルであることを示す。
【0038】
「グループ番号」は、図13に示すように、8ビットで示され、1階層の疑似階層を示すグループ番号である。
【0039】
以上のように構成されたメモリカードシステム1において、ホストコンピュータ10のCPU14は、図14に示すステップS1〜ステップS7の処理を行うことによって、ディレクトリの管理を行うことができる。
【0040】
ステップS1において、CPU14は、フラッシュメモリ22からルートディレクトリ用のディレクトリファイルを読み込んでRAM12に格納して、ステップS2に進む。
【0041】
ステップS2において、CPU14は、上記ディレクトリファイルから目的のディレクトリインフォメーションを読み込んでステップS3に進み、上記グループインフォメーション内のディレクトリIDをチェックして、ステップS4に進む。
【0042】
ステップS4において、CPU14は、このディレクトリIDが示すデータに対応することができるか、すなわち、このディレクトリを取り扱うことができるかを判定し、対応できると判定したときはステップS5に進み、対応できないと判定したときはステップS7に進む。
【0043】
ステップS5において、CPU14は、ディレクトリID別に定義されたフォーマットに従って個別データを読み込みを行ってステップS6に進み、そして、この個別データをアプリケーションの情報として利用する。
【0044】
これにより、例えば論理アドレス05のディレクトリはカメラ専用、論理アドレス10のディレクトリは音楽専用のものにするように、予めディレクトリの用途を規定しておけば、全てのディレクトリの内容を調べないで、ディレクトリの用途を容易に管理することができる。すなわち、ホストコンピュータ10では、ある用途毎に利用できるディレクトリを設けているため、アプリケーションで専用管理ファイルを準備する必要がなくなり、別管理をする手間を省くことができる。
【0045】
また、個別データにアプリケーションの利用を想定したデータを入れておくことによって、ホストコンピュータ10がサポートしていないディレクトリに対しても基本処理を実行することができる。
【0046】
例えば、グループインフォメーションの個別データを利用して、グループ分類に使用するアイコンデータとのリンクを定義することができる。カメラ専用ディレクトリの個別データを用いることによって、一覧表示を行う際のBGMとなるオーディオデータを有するディレクトリともリンクすることができる。音楽ディレクトリの個別データを用いて、アルバムのジャケットや歌詞カードのデータにリンクしたり、総演奏時間の管理を行うこともできる。また、ディレクトリIDによってターゲットとして扱う対象ファイルIDが決められているため、指定されたIDのファイル数を管理することによって、例えばカメラならば撮影枚数、音楽ならば曲数等を管理することができる。
【0047】
一方、ステップS4において対応できないと判定したときのステップS7において、CPU14は、対応可能なアプリケーションの情報はないものとしてこのディレクトリを取り扱う。なお、このディレクトリをコピーしたり、他の機器に送信すること等は可能である。
【0048】
また、ホストコンピュータ10のCPU14は、図15に示すステップS11〜ステップS17の処理を行うことによって、ファイルの管理も行うことができる。
【0049】
ステップS11において、CPU14は、フラッシュメモリ22から所定のファイルを読み出してRAM12に格納し、そのファイルのファイルヘッダの読み込みを行ってステップS12に進み、ファイルIDをチェックして、ステップS3に進む。
【0050】
ステップS13において、CPU14は、このファイルIDが示すデータに対応することができるか、すなわち、そのファイルを取り扱うことができるかを判定して、対応できると判定したときはステップS14に進み、対応できないと判定したときはステップS17に進む。
【0051】
ステップS14において、CPU14は、ファイルID別に定義されたフォーマットに従って個別データを読み込んでステップS15に進み、この個別データをアプリケーションの情報として利用して、ステップS16に進む。
【0052】
ステップS16において、CPU14は、エントリリストのデータ種別IDを調べて、個別データエリアを含めて必要なデータ処理を実行する。
【0053】
これにより、全てのファイルの内容を調べることなくファイルの用途を容易に管理することができる。すなわち、ホストコンピュータ10では、ある用途毎に利用できるディレクトリ及びファイルを設けているため、アプリケーションで専用管理ファイルを準備する必要がなくなり、別管理をする手間を省くことができる。
【0054】
一方、ステップS13でファイルIDに示すデータに対応することができないと判定したときのステップS17において、CPU14は、対応可能なアプリケーションの情報はないものとしてこのファイルを取り扱う。なお、このディレクトリをコピーしたり、他の機器に送信すること等は可能である。また、データ種別IDによって取り扱うことができるデータがあれば、そのデータ処理を実行することはできる。
【0055】
つぎに、ディレクトリが破壊されたときのディレクトリ復活処理について図16を用いて説明する。すなわち、CPU14は、ディレクトリが破壊されたときは、ステップS21以降の処理を行うことによってディレクトリを作成し、ファイルの管理を行うことができる。
【0056】
ステップS21において、CPU14は、ルートディレクトリがあるかを判定し、ルートディレクトリがあるときはステップS23に進み、ルートディレクトリがないときはステップS22に進む。
【0057】
ステップS22において、CPU14は、空きのルートディレクトリを作成してステップS23に進む。
【0058】
ステップS23において、未処理のディレクトリがあるか、換言すると、ルートディレクトリに登録されていないディレクトリがあるかを判定する。そして、未処理のディレクトリがあるときはステップS24に進み、未処理のディレクトリがないときはステップS25に進む。
【0059】
ステップS24において、CPU14は、未処理のディレクトリIDを調べて、このディレクトリIDを上記ルートディレクトリに登録する。例えば、図8に示す「ディレクトリ数」を更新したり、ディレクトリエントリリスト内の図10に示す1ディレクトリエントリとして、未処理のディレクトリファイルの先頭論理アドレスを登録したりして、ステップS23に戻る。なお、ルートディレクトリに限らず、他のディレクトリに未処理のディレクトリが登録されることもある。これにより、ルートディレクトリを幹としたディレクトリの階層構造が決定される。
【0060】
ステップS25において、CPU14は、未処理のファイルがあるか、すなわちディレクトリに登録されていないファイルがあるかを判定し、未処理のファイルがあるときはステップS26に進む。なお、未処理のファイルがないときは、各ディレクトリと各ファイルとの階層構造の構築は完成されているため、処理を終了する。
【0061】
ステップS26において、CPU14は、当該未処理ファイルのファイルIDと同じものがあるかを、全てのディレクトリのディレクトリIDを調べて、ステップS27に進む。
【0062】
ステップS27において、CPU14は、未処理ファイルのファイルIDと一致するディレクトリIDがあるかを判定し、一致するディレクトリIDがあるとき、すなわち上記ファイルに対応するディレクトリがあるときはステップS29に進む。また、一致するディレクトリIDがないとき、すなわち上記ファイルに対応するディレクトリがないときはステップS28に進む。
【0063】
ステップS28において、CPU14は、上記未処理のファイルを登録するために必要なディレクトリを新たに作成し、このディレクトリをルートディレクトリに登録して、ステップS29に進む。
【0064】
ステップS29において、CPU14は、新たに作成されたディレクトリに上記未処理ファイルを登録して、ステップS25に戻る。ここでは、例えば図8に示す「ファイル数」を更新したり、ディレクトリエントリリスト内の図10に示す1ディレクトリエントリとして、未処理のファイルの先頭論理アドレスを登録したりする。そして、未処理のファイルが無くなるまでステップS25からステップS29の処理を実行することによって、全てのファイルをディレクトリに登録して、階層構造を構築することができる。
【0065】
したがって、ディレクトリが破壊されることによって遊離するディレクトリやファイルがあったとしても、そのディレクトリやファイルのIDによって元のディレクトリを作成することができるので、ディレクトリやファイルの管理の信頼性を高めることができる。
【0066】
なお、本実施の形態では、フラッシュメモリ22に記憶されたファイルやディレクトリの管理方法について説明したが、本発明はこれに限定されるものではなく、通常のコンピュータ等におけるデータの管理にも適用することができるのは勿論である。
【0067】
【発明の効果】
本発明に係るファイル管理装置、ファイル管理方法、記録媒体及びファイル管理システムによれば、読み出した上記一のディレクトリの各対象フラグ情報に基づいて上記一のディレクトリと各ファイルの種別が一致するかを判定することによって、所定のファイルに対して高速にアクセスすることができる。
【図面の簡単な説明】
【図1】本発明を適用したメモリカードシステムの構成を示すブロック図である。
【図2】上記メモリカードシステムのメモリカード内のフラッシュメモリに格納される
データの構成を説明するための図である。
【図3】上記フラッシュメモリに格納されるデータの分散管理情報の構成を説明するための図である。
【図4】上記フラッシュメモリに格納されるファイルデータの構成を説明するための図である。
【図5】上記ファイルデータのOSヘッダの構成を説明するための図である。
【図6】上記ファイルデータのファイルヘッダ及びエントリエリアの構成を説明するための図である。
【図7】ディレクトリファイルの構成を説明するための図である。
【図8】上記ディレクトリファイルのディレクトリインフォメーションの構成を説明するための図である。
【図9】上記ディレクトリファイルのグループインフォメーションの構成を説明するための図である。
【図10】上記ディレクトリファイルのディレクトリエントリの構成を説明するための図である。
【図11】上記ディレクトリエントリのファイル番号を説明するための図である。
【図12】上記ディレクトリエントリの属性情報を説明するための図である。
【図13】上記ディレクトリエントリのグループ番号を説明するための図である。
【図14】ディレクトリを管理するときのCPUの動作を説明するフローチャートである。
【図15】ファイルを管理するときのCPUの動作を説明するフローチャートである。
【図16】ディレクトリが破壊された場合にディレクトリを復活させるときの動作を説明するフローチャートである。
【符号の説明】
1 メモリカードシステム、10 ホストコンピュータ、12 RAM、14 CPU、20 メモリカード、22 フラッシュメモリ、23 コントローラ
Claims (4)
- ファイル番号を有するファイルと、ファイル番号とこのファイル番号が示すファイルを取り扱うことができるかを示す対象フラグ情報とからなるディレクトリエントリをファイル毎に有するディレクトリとを記憶する記憶手段と、
記憶された一のディレクトリのディレクトリエントリのファイル番号が示すファイルを上記一のディレクトリの下の階層になるように管理する管理手段とを備え、
上記対象フラグは、ファイルの種別が該ファイルの属するディレクトリの種別と一致するか否かを示し、
上記管理手段は、上記記憶手段から読み出した上記一のディレクトリの各対象フラグ情報に基づいて上記一のディレクトリと各ファイルの種別が一致するかを判定することを特徴とするファイル管理装置。 - ファイル番号を有するファイルと、ファイル番号とそのファイル番号の示すファイルを取り扱うことができるかを示す対象フラグ情報とからなるディレクトリエントリをファイル毎に有するディレクトリとを記憶し、
記憶された一のディレクトリのディレクトリエントリのファイル番号が示すファイルを上記一のディレクトリの下の階層になるように管理し、
一のディレクトリの各対象フラグ情報を読み出し、
上記対象フラグは、ファイルの種別が該ファイルの属するディレクトリの種別と一致するか否かを示しており、読み出した上記一のディレクトリの各対象フラグ情報に基づいて上記一のディレクトリと各ファイルの種別が一致するかを判定することを特徴とするファイル管理方法。 - ファイル番号を有するファイルと、ファイル番号とそのファイル番号の示すファイルを取り扱うことができるかを示す対象フラグ情報とからなるディレクトリエントリをファイル毎に有するディレクトリとを記憶し、上記対象フラグは、ファイルの種別が該ファイルの属するディレクトリの種別と一致するか否かを示し、
上記記憶された一のディレクトリのディレクトリエントリのファイル番号が示すファイルは、上記一のディレクトリの下の階層になるように管理され、
上記一のディレクトリの各対象フラグ情報に基づいて上記一のディレクトリと各ファイルの種別が一致するか否かが判定されることを特徴とする記録媒体。 - ファイル番号を有するファイルと、ファイル番号とそのファイル番号の示すファイルを取り扱うことができるかを示す対象フラグ情報とからなるディレクトリエントリをファイル毎に有するディレクトリとを記憶する記録媒体と、
上記記録媒体から読み出されたファイルとディレクトリとを記憶する記憶手段と、記憶された一のディレクトリのディレクトリエントリのファイル番号が示すファイルを上記一のディレクトリの下の階層になるように管理する管理手段とを有するファイル管理装置とを備え、
上記対象フラグは、ファイルの種別が該ファイルの属するディレクトリの種別と一致するか否かを示し、
上記ファイル管理装置の管理手段は、上記記憶手段から読み出した上記一のディレクトリの各対象フラグ情報に基づいて上記一のディレクトリと各ファイルの種別が一致するかを判定することを特徴とするファイル管理システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26717497A JP3624647B2 (ja) | 1997-09-30 | 1997-09-30 | 記憶装置、データ管理装置、データ管理システム、データ管理方法、ファイル管理装置、記録媒体及びファイル管理システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26717497A JP3624647B2 (ja) | 1997-09-30 | 1997-09-30 | 記憶装置、データ管理装置、データ管理システム、データ管理方法、ファイル管理装置、記録媒体及びファイル管理システム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004006082A Division JP4055712B2 (ja) | 2004-01-13 | 2004-01-13 | データ管理装置、データ管理方法及びデータ管理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11110272A JPH11110272A (ja) | 1999-04-23 |
JP3624647B2 true JP3624647B2 (ja) | 2005-03-02 |
Family
ID=17441142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP26717497A Expired - Fee Related JP3624647B2 (ja) | 1997-09-30 | 1997-09-30 | 記憶装置、データ管理装置、データ管理システム、データ管理方法、ファイル管理装置、記録媒体及びファイル管理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3624647B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008034903A (ja) * | 2006-07-26 | 2008-02-14 | Kyocera Mita Corp | 画像読取装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008132795A1 (ja) * | 2007-04-25 | 2008-11-06 | Panasonic Corporation | 情報再生方法及び情報再生装置 |
-
1997
- 1997-09-30 JP JP26717497A patent/JP3624647B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008034903A (ja) * | 2006-07-26 | 2008-02-14 | Kyocera Mita Corp | 画像読取装置 |
Also Published As
Publication number | Publication date |
---|---|
JPH11110272A (ja) | 1999-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3072722B2 (ja) | フラッシュメモリを用いるデータ管理装置及びデータ管理方法並びにフラッシュメモリを用いる記憶媒体 | |
US7039754B2 (en) | Detachably mounted removable data storage device | |
KR101033068B1 (ko) | 메모리 장치 및 그 메모리 장치를 이용한 기록 재생 장치 | |
JPH08328762A (ja) | 半導体ディスク装置及びそのメモリ管理方法 | |
US6662269B1 (en) | Data rewriting apparatus, control method, and recording medium | |
JP2001325128A (ja) | ファイル管理方法、記録又は再生装置 | |
JP5558093B2 (ja) | 半導体装置及びメモリシステム | |
JP3624647B2 (ja) | 記憶装置、データ管理装置、データ管理システム、データ管理方法、ファイル管理装置、記録媒体及びファイル管理システム | |
JP4055712B2 (ja) | データ管理装置、データ管理方法及びデータ管理システム | |
JP2001325134A (ja) | ディレクトリ設定方法、記録装置 | |
JPH11120044A (ja) | データ処理装置、データ処理方法、データ処理システム及び記録媒体 | |
JP3620241B2 (ja) | ファイル管理装置、ファイル管理方法、記録媒体及びファイル管理システム | |
JP4200362B2 (ja) | 記録媒体の記録制御方法、記録制御装置および電子機器 | |
JP4003709B2 (ja) | ファイル管理装置、ファイル管理方法及びファイル管理システム | |
JP3531438B2 (ja) | データ管理装置、データ管理方法、データ管理システム及び外部記憶装置 | |
JP4403338B2 (ja) | 情報処理装置、情報処理方法 | |
JP2001331328A (ja) | 情報処理装置、情報処理方法 | |
JP2001331280A (ja) | 情報処理装置、情報処理方法 | |
KR100513814B1 (ko) | 데이터관리장치,데이터관리방법및기억매체 | |
JP2002007204A (ja) | 情報処理装置、情報処理方法 | |
JP2001325127A (ja) | アクセス方法、記録又は再生装置 | |
JP2002007179A (ja) | 情報処理装置、ファイルシステム | |
JP2007018528A (ja) | メモリ装置、ファイル管理方法及び記録再生装置 | |
KR100390486B1 (ko) | 디지털 데이터 재생장치의 파일 이름 저장 방법 | |
JP2002007194A (ja) | 情報処理方法、情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20031111 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20041109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041122 |
|
LAPS | Cancellation because of no payment of annual fees |