ファイル管理

最終更新日: 2019年 04月07日

ここまでは、コンピュータのハードウェアの仕組み、ソフトウェアについて見てきましたが 今回はファイル管理についてです。

ファイル管理というと難しく聞こえますがコンピュータのファイルがどのように保存されているかや その種類、ファイルの所在地を表す方法などについて説明していきます。

ファイルとは?

ファイルとはコンピュータ内で扱うデータの単位で一つの文書のようなものです。ファイルはハードディスク上に保存され、OSのファイルシステムというファイルを管理するための 機能のよって管理されています。PCを使っていればよく聞くと思いますが、ファイルを入れるための箱のようなフォルダ(ディレクトリ)でそれぞれのファイルをグループにわけながら管理をしています。

ファイルのデータ形式

ファイルの形式には様々あり、カンマ区切りで区切られたファイルであるCSVや画像データを扱うためのPNG、JPEGファイル、電子文書ファイルを扱うPDFファイルなど 様々な形式があります。それぞれのファイル形式を開くには専用のソフトが必要でテキストファイルやCSVファイルなどはPCに最初からインストールされているテキストエディタ などで見ることができますが、画像はイメージのビューワー、PDFはPDFのビューワーが必要です。

さらにOSからはファイルシステム上にあるファイルがどういう形式であるかを判別するために拡張子と呼ばれるものをファイル名の後ろに付加します。

拡張子

画像の場合は.pngや.jpegなどの拡張子をつけておくとファイルを開く際にOSが勝手に認識してくれと画像のビューワーでファイルを開き画像が見れるようにしてくれます。

ファイルシステムのデータ構造

ファイルシステムのツリー構造

ファイルシステムのツリー構造

さきほど少し触れましたがコンピュータ内のファイルはファイルとフォルダが入れ子のツリー状の形になって保存されています。 Macの場合、Finderでホームを開くとそこの下にいくつかのディレクトリが用意されていて、その中のダウンロードというディレクトリには ダウンロードされたファイルが保存されますし、アプリケーションというディレクトリにはデスクトップアプリケーションのファイルが保管されています。

このように、コンピュータのファイルはツリー状に管理されているのですが任意のファイルの所在地の表し方や慣習的に決まっているディレクトリの名前などがあるので説明していきます。

パス

よくファイルの所在を伝える際に「Finder」→「アプリケーション」→「iTunes」のようにファイルの所在地を階層で伝えることがありますが、 プログラムの世界ではこれを「/(スラッシュ)」で区切ってそのファイルの所在を表します。

そしてそのファイルの所在地までのスラッシュ区切りの文字列をパスと言い、ファイルシステム上の一番下の階層(根っこの階層)をルートまたはルートディレクトリ と言って、ルートディレクトリを「/」一文字であらわします。

※ スラッシュ区切りは、Mac OSやLinuxでの概念で、Windowsでは¥区切りで表します。

PCを開いたときに最初に現れるデスクトップの画面にもファイルを置いておくことができますが、これも実はディレクトリの一つで Macにおけるデスクトップのパスは

/Users/[ユーザ名]/Desktop

になります。

ホームディレクトリ

さらに、Linuxだと/home/ユーザ名、Maxだと"/Users/ユーザ名"のディレクトリのことを特別にホームディレクトリと言います。

コマンドラインで操作を行う場合にターミナルを立ち上げて最初に表示されるディレクトリがホームディレクトリとなります。

ルートディレクトリ

ファイルシステム上の一番根っこの階層でスラッシュ一文字で表されます。ルートディレクトリは全てのファイルの先祖にあたるディレクトリなのでここのディレクトリに変更を加えるには強い権限が必要です。

カレントディレクトリ

コマンドラインで操作を行なっているとわかりやすいのですが、手動で「Finder」→「アプリケーション」→「iTunes」のように階層を掘り下げながらファイルを探して行くときに自分が どのディレクトリにいるのか?というのを気にする必要があると思いますが、その自分が今いるディレクトリをカレントディレクトリと言います。

下で説明しますが、絶対パス、相対パスを理解するのに大事な概念なので覚えておくようにしましょう。 カレント(current)は英語で現在の意味なので、現在の(今いる)ディレクトリとして覚えておくとよいでしょう。

絶対パス

ルートディレクトリから目的のファイルにあたるまでのすべてのフォルダを並べたものが絶対パスです。

さきほど紹介したデスクトップのパスは絶対パスの例で、カレントディレクトリに関わらず、ルートディレクトリからの絶対的な位置を表す場合に使用します。

相対パス

ルートからの絶対的なパスを表すのが絶対パスでしたが、カレントディレクトリを起点にファイルの所在を表す方法を相対パスと言います。

自分がホームディレクトリ(カレントディレクトリは"/Users/ユーザ名")を見ている場合に、デスクトップの所在を表すには

./Desktop

とします。相対パスではカレントディレクトリより下の階層を表すことができますが、上の階層を表す場合にはピリオドを続けて「..」とします。 自分がホームディレクトリ(カレントディレクトリは"/Users/ユーザ名")を見ている場合に、Usersディレクトリの所在を表すには

../

になります。さらに/Usersディレクトリのさらに上の階層を表すにはこれを続けて(この場合はルートディレクトリをさす)

../../

とします。

余談ですが、コマンドライン上でカレントディレクトリを表すのはピリオド一つ「.」になります。余裕があれば覚えておきましょう。

まとめ

  • ファイルのデータ形式を識別するためのファイル名の末尾につけられるものが拡張子
  • コンピュター内のファイルはツリー構造で管理されている
  • ファイルの所在を表す記法がパス
  • パスには絶対パスと相対パスでの二通りの表し方がある
  • ファイルの階層構造の一番根元のディレクトリがルートディレクトリ
  • Finderやコマンドラインで今参照しているディレクトリをカレントディレクトリと呼ぶ

ここまでファイル管理についてファイルのデータ形式、ファイルシステムの所在地に関する表記法などについて説明しましたが、 後半のパスについてはプログラミングを行う上では必須の知識でしょっちゅう出てくるので必ず理解して置いてください。

とくにカレントディレクトリ、相対パス、絶対パスあたりの理解ができていないとコマンドライン操作で苦労するので今のうちに覚えておきましょう。