JPH1074154A - ファイル管理装置 - Google Patents

ファイル管理装置

Info

Publication number
JPH1074154A
JPH1074154A JP8229477A JP22947796A JPH1074154A JP H1074154 A JPH1074154 A JP H1074154A JP 8229477 A JP8229477 A JP 8229477A JP 22947796 A JP22947796 A JP 22947796A JP H1074154 A JPH1074154 A JP H1074154A
Authority
JP
Japan
Prior art keywords
file
file name
full path
name
directory
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.)
Pending
Application number
JP8229477A
Other languages
English (en)
Inventor
Masahiko Yoshimura
政彦 吉村
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.)
Digital Vision Laboratories Corp
Original Assignee
Digital Vision Laboratories 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 Digital Vision Laboratories Corp filed Critical Digital Vision Laboratories Corp
Priority to JP8229477A priority Critical patent/JPH1074154A/ja
Publication of JPH1074154A publication Critical patent/JPH1074154A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 外的には多層構造を維持しつつも内的にはフ
ラットなファイル管理を行うことにより多層化した場合
のファイルアクセスの効率改善を図る。 【解決手段】 任意の一つのディレクトリに含まれるす
べてのファイル名をフルパス付きで格納するとともにそ
れぞれのファイルの記憶装置内における格納位置の情報
をファイル名に関連付けて格納するテーブルと、入力フ
ァイル名がフルパス付きのときフルパス付きの入力ファ
イル名を用いてテーブルを検索し入力ファイル名の記憶
装置内における格納位置の情報を検索する検索手段とを
備える。ユーザ若しくはプログラムから見える入力ファ
イル名は、階層構造を持つ一般的なファイルシステムと
まったく変わりなく、外的な多層構造を維持でき、しか
も、任意の一つのディレクトリに含まれるすべてのファ
イル名が一つのテーブルで管理されるため、内的にフラ
ットなファイル管理とすることができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、階層構造の入出力
管理機能(ファイルシステムとも言う)を有するOS
(オペレーティングシステム)に適用できるファイル管
理装置に関する。
【0002】
【従来の技術】パーソナルコンピュータやワークステー
ションにおけるファイル管理はOSによって行われてお
り、一般に多くのOSでは、多種多様なファイルを種類
や用途ごとに分類して階層的に管理できるようになって
いる。この種のOSの典型例としてUNIXのファイル
管理システムを説明すると、このファイル管理システム
では、ファイル名とその属性(作成日時、更新日時、種
類、アクセス権など)を記入した一覧表へのインデック
スの組からなる表(ディレクトリと言う)を持ち、ディ
レクトリ単位でファイルを管理する。ファイルの種類や
用途に応じた適切な名前のディレクトリを作成すること
により、ファイルの整理や分類を容易化できる。
【0003】ディレクトリは、ファイルシステムを初期
化したときに自動的に作られるルートディレクトリと、
このルートディレクトリの下に任意に作られるサブディ
レクトリとがあり、サブディレクトリを階層化すること
によって、多層のファイルシステムを構築できる。ここ
で、任意のサブディレクトリのファイルを読み出すとき
は、パス名とファイル名を連結した文字列をファイル管
理システムに渡す。パス名とは、ルートディレクトリ
(またはカレントディレクトリ)から該当サブディレク
トリまでのすべてのディレクトリ名を連結した文字列で
あり、特に、ルートディレクトリを含む完全なパス名を
フルパスと言う。
【0004】たとえば、図6に示すファイルシステムの
例では、“first.TXT”という名前のファイル
を“masahiko”という名前のサブディレクトリ
に格納しているが、この“masahiko”はルート
ディレクトリから数えて4階層目のサブディレクトリで
あるから、“first.TXT”のフルパス名は、
“/usr/home/masahiko/”となる。
したがって、“first.TXT”を読み出すときの
ファイルシステムに渡す文字列は、“/usr/hom
e/masahiko/first.TXT”となる。
【0005】なお、パス名の先頭のスラッシュ
(“/”)はルートディレクトリを表わし、それ以外の
スラッシュは、各コンポーネント(“usr”、“ho
me”、“masahiko”)のデリミタすなわち区
切り記号である。ファイル管理システムは、入力された
パス名のルートディレクトリ及び各コンポーネントを手
がかりに各階層のディレクトリを参照し、最終的に、対
象ファイルのファイルシステム内の格納位置情報(UN
IXではinode、MS−OSではFCB)を特定す
る。各々のファイルの格納位置情報は番号によって区別
される。
【0006】図6において、楕円の脇に記載した数字は
inode番号を表わしている(ただし、値は便宜
値)。上記の文字列(“/usr/home/masa
hiko/first.TXT”)をファイル管理シス
テムに与えると、ファイル管理システムは、まず、ルー
トディレクトリから“usr”ディレクトリのinod
e番号(“10”)を探し出し、次いで、“usr”デ
ィレクトリから“home”ディレクトリのinode
番号(“123”)を探し出し、次いで、“home”
ディレクトリから“masahiko”ディレクトリの
inode番号(“63”)を探し出し、最後に、“m
asahiko”ディレクトリから対象ファイル(“f
irst.TXT”)のinode番号(“500”)
を探し出すという処理を順次に実行する。
【0007】
【発明が解決しようとする課題】しかしながら、かかる
従来のファイル管理装置にあっては、ファイルの種類や
用途に応じた適切な名前のディレクトリを作成すること
により、ファイルの整理や分類を容易化できる点で好都
合であるが、ディレクトリの階層数に比例してディレク
トリの検索回数が増えるため、多層化した場合にファイ
ルアクセスの効率が悪くなるという問題点があった。
【0008】そこで、本発明は、外的には多層構造を維
持しつつも内的にはフラットなファイル管理を行うこと
により、多層化した場合のファイルアクセスの効率改善
を図ることを課題とする。
【0009】
【課題を解決するための手段】本発明の上記課題は、任
意の一つのディレクトリに含まれるすべてのファイル名
をフルパス付きで格納するとともにそれぞれのファイル
の記憶装置内における格納位置の情報をファイル名に関
連付けて格納するテーブルと、入力ファイル名がフルパ
ス付きのとき該フルパス付きの入力ファイル名を用いて
前記テーブルを検索し該入力ファイル名の記憶装置内に
おける格納位置の情報を検索する検索手段と、を備える
ことによって達成できる。
【0010】また、入力ファイル名がフルパス付きでな
いとき該入力ファイル名に前記一つのディレクトリのフ
ルパス名を連結してフルパス付きの入力ファイル名を生
成する生成手段を備えることが望ましい。また、前記テ
ーブルは、検索効率の点でハッシュテーブルであること
が望ましい。これらの手段によれば、ユーザ若しくはプ
ログラムから見える入力ファイル名は、階層構造を持つ
一般的なファイルシステムとまったく変わりなく、外的
な多層構造を維持でき、しかも、任意の一つのディレク
トリに含まれるすべてのファイル名が一つのテーブルで
管理されるため、内的にフラットなファイル管理とする
ことができる。したがって、多層化した場合でも一つの
テーブルを検索すればよいから、ファイルアクセスの効
率を改善できる。
【0011】
【発明の実施の形態】以下、本発明の実施例を図面に基
づいて説明する。図1〜図3は本発明に係るファイル管
理装置の一実施例を示す図である。なお、本実施例のフ
ァイル管理装置は、パーソナルコンピュータやワークス
テーション等のハードウエアと、そのハードウエア上で
動作するOSやドライバプログラム等のソフトウエアと
の有機的結合によって仮想的に実現されるもので、実体
は存在しない。
【0012】本実施例のファイル管理装置が具備すべき
特徴的な事項は、以下の説明でも明らかになるが、少な
くとも次の三つである。 任意の一つのディレクトリに含まれるすべてのファ
イル名をフルパス付きで格納するとともにそれぞれのフ
ァイルの記憶装置内における格納位置の情報をファイル
名に関連付けて格納するテーブル 入力ファイル名がフルパス付きでないとき、該入力
ファイル名に前記一つのディレクトリのフルパス名を連
結してフルパス付きの入力ファイル名を生成する生成手
段 入力ファイル名がフルパス付きのときは該フルパス
付きの入力ファイル名を用いて、または、入力ファイル
名がフルパス付きでないときは前記生成手段の出力を用
いて前記テーブルを検索し該入力ファイル名の記憶装置
内における格納位置の情報を検索する検索手段 これらの事項は、パーソナルコンピュータやワークステ
ーション等の特長(汎用性や拡張性)を考慮すると、ソ
フトウエアの改修や追加によって実現するのが実際的で
あるが、場合によっては、ハードウエアの改修や追加に
よって実現してもよいことはもちろんである。
【0013】図1は、上記事項のとを実現するため
のソフトウエアの要部フローチャートである。このフロ
ーチャートにおいて、1は、ユーザによって指定され若
しくはプログラムタスクによって作られたファイル名を
取り込むステップである。このステップで入力されるフ
ァイル名は、(1)パス名を持たないファイル名〔例:
“first.TXT”〕、(2)完全なパス名を持つ
ファイル名〔例:“/usr/home/masahi
ko/first.TXT”〕、(3)不完全なパス名
を持つファイル名………カレントディレクトリを示すコ
ンポーネント(.)や親ディレクトリを示すコンポーネ
ント(..)を含むパス名を持つもの………のいずれか
である。なお、スペルミス等による正しくないファイル
名も存在するが、説明の簡素化のために無視する。
【0014】2は、入力ファイル名のコンポーネント数
が「1」であるか否かを判定するステップであり、コン
ポーネント数=1の場合は、カレントディレクトリ直下
のファイルを検索することになり、従来どおりのファイ
ルシステムを用いてもファイルアクセスの効率をそれぼ
と低下しないことから、ステップ3で従来どおりの方法
でファイル検索を行うというものである。なお、カレン
トディレクトリ直下のファイル数が多い場合、従来どお
りの手法では効率が悪くなるおそれがあるから、ステッ
プ2にファイル数の判定を加えてもよい。
【0015】4は、入力されたファイル名がフルパス付
きか否かを判定するステップである。すなわち、完全な
パス名を持つファイル名〔例:“/usr/home/
masahiko/first.TXT”〕であるか否
かを判定するステップである。フルパス付きでない場合
(ステップ4の判定結果がNOの場合)は、入力ファイ
ル名にフルパスを付加してフルパス付きのファイル名を
生成する。5〜7は、そのためのステップである。すな
わち、ステップ5で、入力ファイル名にカレントディレ
クトリのコンポーネント(.)が含まれているか否かを
判定し、含まれている場合には、ステップ6で、そのコ
ンポーネント(.)を取り除き、ステップ7で、カレン
トディレクトリ文字列(便宜的に“/usr/home
/masahiko/”とする)と入力ファイル名(便
宜的に“first.TXT”とする)を連結して、完
全なパス名を持つファイル名(“/usr/home/
masahiko/first.TXT”)を生成す
る。したがって、これらのステップ5〜7は、本実施例
のファイル管理装置の必須の事項の一つである「生成手
段」を具現化したものである。
【0016】8〜11は、入力されたフルパス付きのフ
ァイル名、または、生成されたフルパス付きのファイル
名に、親ディレクトリのコンポーネント(..)が含ま
れている場合、当該コンポーネントの後ろに続く2文字
で同コンポーネントの文字列を上書きして取り除くステ
ップ(ステップ8、9)、及び、同ファイル名のデリミ
タ(“/”)が連続している場合、単一のデリミタに直
すステップ(ステップ10、11)である。
【0017】12〜17は、本実施例のファイル管理装
置の必須の事項の一つである「検索手段」を具現化し
たものであり、ここでは、同装置の必須の事項の一つで
ある「テーブル」をハッシュテーブルとした場合の好
ましい構成を示してある。なお、ハッシュテーブルと
は、サーチの一手法であるハッシュサーチ(hash searc
h)に用いるインデックステーブルに相当するものであ
る。ハッシュサーチでは、実際のキーから作成した疑似
キーをインデックスとし、アクセスはインデックステー
ブルを介して行うため、エントリが多大になっても高速
なダイレクトサーチが可能である。
【0018】12は、ハッシュサーチの疑似キーを発生
するステップである。ここでは、フルパス付きファイル
名の文字列を実際のキーとし、いわゆるハッシュ関数を
使用して実際のキーから疑似キーを発生する。ここで、
Kを実際のキー、Rを疑似キー(ハッシュ値)とする
と、ハッシュ関数は、R=Φ(K)で表わすことができ
る。Kは、フルパス付きファイル名の文字列に固有の値
であれば何でもよい。たとえば、同文字列を構成する各
文字コードの値の積をハッシュテーブルのサイズで割っ
た余りとすると、Rの値がテーブルのサイズに収まるか
ら好ましい。 (以下余白)
【0019】説明の都合上、次の九つのファイル(A〜
I)を考える。 これら九つのファイルのフルパス付きファイル名のハッ
シュ値を、次のとおり仮定する(値はすべて便宜値であ
る)。 (以下余白)
【0020】 表2において、ファイルC、ファイルG及びファイルI
のハッシュ値が同じ(=32)である。また、ファイル
DとファイルHのハッシュ値も同じ(=49)である。
このことは、ファイルC、G、I(またはファイルD、
H)の文字列をキーとするハッシュ値が同じであること
を意味し、いわゆるハッシュ値の衝突が発生することを
示している。
【0021】図2は、ハッシュテーブル(テーブル)
の概念図である。このテーブルは、特に限定しないが、
0〜166までのレコードを有するテーブルであり、各
レコードはハッシュ値の衝突フラグフィールドとデータ
フィールドとを有している。0〜166のレコード番号
は表2のハッシュ値に対応する。たとえば、“/usr
/home/A”の場合のハッシュ値は「67」である
から、67番のレコードを検索(図1のステップ13)
し、このレコードのハッシュ値の衝突フラグとデータフ
ィールドを読み込む。ここで、67番のレコードの衝突
フラグはリセット状態(“1”以外)であり、この場合
のデータフィールドの値(“1231”)は、“/us
r/home/A”のinode番号そのものを表わし
ている。
【0022】したがって、一つのテーブルから読み出さ
れたinode番号を用いて、ハードディスク内の“/
usr/home/A”の格納位置を特定(図1のステ
ップ17)でき、外的にはファイル名の階層構造を維持
したまま、内的にフラットなファイル管理を実現でき、
多層化した場合のファイルアクセスの効率改善を図るこ
とができる。
【0023】上記のとおり、ファイル名によってはハッ
シュ値が衝突することがある。このハッシュ値の衝突対
策を説明すると、たとえば、“/usr/home/
C”の場合のハッシュ値は「32」であるが、“/us
r/home/G”及び“/usr/home/I”の
ハッシュ値も同じである。図2において、このハッシュ
値(=32)と同番号のレコードの衝突フラグはセット
状態(“1”)にあり、そのデータフィールドの値(便
宜的に“x”)がinode番号でないことを示してい
る。すなわち、衝突フラグがセット状態(“1”)にあ
るレコードのデータフィールドの値(“x”)は、ハッ
シュ値を同一にする“/usr/home/C”、“/
usr/home/G”及び“/usr/home/
I”のそれぞれのinode番号を収めたサブテーブル
の開始アドレスを示す情報である。
【0024】図3は、サブテーブルの概念図であり、ア
ドレスxに“/usr/home/C”のinode番
号(“6339”)が、また、アドレスx+1に“/u
sr/home/G”のinode番号(“449
3”)が、さらに、アドレスx+2に“/usr/ho
me/I”のinode番号(“777”)が格納され
ている。なお、サブテーブルのラストフラグは、ハッシ
ュ値を同一にするファイルの最後を示すものである
(“1”で最後)。
【0025】たとえば、“/usr/home/G”を
検索する場合は、まず、ハッシュテーブルの32番のレ
コードから“x”を取り出し、アドレスxから順次にサ
ブテーブルを検索(図1のステップ15)する。ここで
は、サブテーブルのアドレスx+1に“/usr/ho
me/G”が格納されているため、一致が判定(図1の
ステップ16)される。したがって、サブテーブルから
読み出されたinode番号を用いて、ハードディスク
内の“/usr/home/G”の格納位置を特定(図
1のステップ17)でき、外的にはファイル名の階層構
造を維持したまま、内的にフラットなファイル管理を実
現でき、多層化した場合のファイルアクセスの効率改善
を図ることができる。
【0026】なお、以上は、ハッシュ値の衝突が起こり
得るという前提のもとで説明したが、ハッシュ値の衝突
を回避するようにハッシュ関数を定義するなどして衝突
を避ければ、図4に示すように、ハッシュテーブルから
フラグフィールドを取り除くことができる。この場合、
データフィールドの値はすべてinode番号になる。
【0027】または、ファイル数がそれほど大量でなけ
れば、図5に示すような順編成テーブルを採用すること
もできる。このテーブルのレコードは、フルパス付きの
ファイル名を格納する第1のデータフィールドと、その
ファイルのinode番号を格納する第2のデータフィ
ールドとからなり、入力された(または生成手段によっ
て生成された)フルパス付きのファイル名に一致する文
字列を第1のデータフィールドから見つけ出し、そのレ
コードの第2のデータフィールドからinode番号を
取り出すというものである。
【0028】
【発明の効果】本発明によれば、外的には多層構造を維
持しつつも内的にはフラットなファイル管理を行うこと
ができる。したがって、多層化した場合のファイルアク
セスの効率改善を図ることができるという格別有利な効
果を奏することができ、特に、大量のファイルを管理す
るパーソナルコンピュータやワークステーション若しく
はデータ処理装置等に用いて好適な技術を提供できる。
【図面の簡単な説明】
【図1】一実施例の要部フローチャートである。
【図2】一実施例のハッシュテーブルの概念図である。
【図3】一実施例のサブテーブルの概念図である。
【図4】一実施例のハッシュテーブルの他の概念図であ
る。
【図5】一実施例のハッシュテーブルに代える順編成テ
ーブルの概念図である。
【図6】階層構造を持つファイルシステムの概念図であ
る。
【符号の説明】 :テーブル :生成手段 :検索手段

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】任意の一つのディレクトリに含まれるすべ
    てのファイル名をフルパス付きで格納するとともにそれ
    ぞれのファイルの記憶装置内における格納位置の情報を
    ファイル名に関連付けて格納するテーブルと、 入力ファイル名がフルパス付きのとき該フルパス付きの
    入力ファイル名を用いて前記テーブルを検索し該入力フ
    ァイル名の記憶装置内における格納位置の情報を検索す
    る検索手段と、を備えることを特徴とするファイル管理
    装置。
  2. 【請求項2】任意の一つのディレクトリに含まれるすべ
    てのファイル名をフルパス付きで格納するとともにそれ
    ぞれのファイルの記憶装置内における格納位置の情報を
    ファイル名に関連付けて格納するテーブルと、 入力ファイル名がフルパス付きでないとき該入力ファイ
    ル名に前記一つのディレクトリのフルパス名を連結して
    フルパス付きの入力ファイル名を生成する生成手段と、 入力ファイル名がフルパス付きのときは該フルパス付き
    の入力ファイル名を用いて、または、入力ファイル名が
    フルパス付きでないときは前記生成手段の出力を用いて
    前記テーブルを検索し該入力ファイル名の記憶装置内に
    おける格納位置の情報を検索する検索手段と、を備える
    ことを特徴とするファイル管理装置。
  3. 【請求項3】前記テーブルがハッシュテーブルであるこ
    とを特徴とする請求項1または請求項2記載のファイル
    管理装置。
JP8229477A 1996-08-30 1996-08-30 ファイル管理装置 Pending JPH1074154A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8229477A JPH1074154A (ja) 1996-08-30 1996-08-30 ファイル管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8229477A JPH1074154A (ja) 1996-08-30 1996-08-30 ファイル管理装置

Publications (1)

Publication Number Publication Date
JPH1074154A true JPH1074154A (ja) 1998-03-17

Family

ID=16892795

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8229477A Pending JPH1074154A (ja) 1996-08-30 1996-08-30 ファイル管理装置

Country Status (1)

Country Link
JP (1) JPH1074154A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000112750A (ja) * 1998-10-02 2000-04-21 Hyper Tec:Kk 情報処理装置
JP2007164597A (ja) * 2005-12-15 2007-06-28 Hitachi Ltd ファイル管理装置及び方法並びに記憶システム
US7414746B2 (en) 2000-05-23 2008-08-19 Fujifilm Corporation Image data communication method
JP2010050600A (ja) * 2008-08-20 2010-03-04 Fujitsu Ltd 情報検索装置
WO2011111837A1 (ja) 2010-03-11 2011-09-15 楽天株式会社 情報処理方法、情報処理装置、プログラム及び記録媒体

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04260945A (ja) * 1991-01-11 1992-09-16 Mitsubishi Electric Corp ファイル・アクセス装置及びファイル・アクセス方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04260945A (ja) * 1991-01-11 1992-09-16 Mitsubishi Electric Corp ファイル・アクセス装置及びファイル・アクセス方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000112750A (ja) * 1998-10-02 2000-04-21 Hyper Tec:Kk 情報処理装置
US7414746B2 (en) 2000-05-23 2008-08-19 Fujifilm Corporation Image data communication method
JP2007164597A (ja) * 2005-12-15 2007-06-28 Hitachi Ltd ファイル管理装置及び方法並びに記憶システム
US8224880B2 (en) 2005-12-15 2012-07-17 Hitachi, Ltd. File management apparatus and method, and storage system
JP2010050600A (ja) * 2008-08-20 2010-03-04 Fujitsu Ltd 情報検索装置
WO2011111837A1 (ja) 2010-03-11 2011-09-15 楽天株式会社 情報処理方法、情報処理装置、プログラム及び記録媒体
US8812568B2 (en) 2010-03-11 2014-08-19 Rakuten, Inc. Information processing method, information processing device, program, and recording medium

Similar Documents

Publication Publication Date Title
US7711754B2 (en) System and method for managing data using static lists
US10678799B2 (en) Methods and systems for managing data
US5590320A (en) Computer file directory system
US7412449B2 (en) File object storage and retrieval using hashing techniques
JP5373846B2 (ja) リレーショナルシステムにおける階層的に編成された情報にアクセスするための階層的インデックス付け
US7774326B2 (en) Methods and systems for managing data
TWI358027B (en) Computer-storage media and method for automaticall
US6330567B1 (en) Searching system for searching files stored in a hard disk of a personal computer
US6938032B1 (en) Presentation builder
JPH08115334A (ja) 検索装置
US8086638B1 (en) File handle banking to provide non-disruptive migration of files
JPH1074154A (ja) ファイル管理装置
US8126944B2 (en) Unordered/fuzzy file path
US20080177701A1 (en) System and method for searching a volume of files
JP3260706B2 (ja) パーソナルコンピュータのハードディスクに記憶されたファイルを検索する検索システム
KR19980030010A (ko) 데이터베이스 관리 시스템에서의 테이블에 대한 계층 관리 장치
CN113282551B (zh) 数据处理方法、系统及设备
CN118550882A (zh) 一种检索文档的索引方法
JPH0540680A (ja) フアイル階層管理システム
JPH06110757A (ja) データ管理方式