# File

## 概要 - Abstract

VCSSL File ライブラリ は、ファイルパスの取得や、ディレクトリ内のファイル名リスト取得など、ファイルに関する各種機能を提供する標準ライブラリです。
ただし、このライブラリではファイルI/Oは扱いません。ファイルI/Oについては、System ライブラリや file.TextFile ライブラリを使用してください。

## 目次 - Index

const int ABSOLUTE
  絶対パスを意味する設定値です。
const int RELATIVE
  相対パスを意味する設定値です。
const int PARENT
  親階層を意味する設定値です。
const int HOME
  ユーザーのホームディレクトリを意味する設定値です。
const int ROOT
  ルートディレクトリを意味する設定値です。
const int TMP
  コンピュータ側で用意されている一時ファイル用ディレクトリを意味する設定値です。
const int UNORDERED
  特に整列されていないファイル順序を意味する設定値です。
const int LEXICAL
  辞書順に整列されたファイル順序を意味する設定値です。
bool isDirectory( string pathOrName )
  ファイルがディレクトリであるかどうかを判定します。
void makeDirectory( string pathOrName )
  ディレクトリを新規作成します。
string[ ] listDirectory( string pathOrName )
  指定ディレクトリ直下にあるファイル名の一覧を返します。ファイル名の順序は特に整列されず、環境や処理系に依存します。
string[ ] listDirectory( string pathOrName, bool sortByIgnoreCase, int sortOption )
  指定ディレクトリ直下にあるファイル名の一覧を返します。ファイル名の整列オプションを指定できます。
void makeFile( string pathOrName )
  ファイルを新規作成します。
string getFileName( string path )
  ファイルパスから、ファイル名の部分を取得します。
void removeFile( string pathOrName )
  ファイルを削除します。対象がディレクトリの場合、中身が空でなければ削除できないため、先に中身を削除する必要があります。
void moveFile( string pathOrName, string newName )
  ファイルの移動や、ファイル名の変更を行います。引数が、共にファイル名のみの場合や、共に同じディレクトリ内のファイルパスである場合には、処理内容はファイル名の変更になります。引数が、互いに異なるディレクトリ内のファイルパスである場合には、処理内容はファイルの移動になります。ファイルは移動されます。ドライブをまたぐ移動はできない場合があります。
void renameFile( string pathOrName, string newName )
  ファイル名を変更します。変更先にファイル名ではなくパスを指定した場合、ファイルは移動されます。ただし環境によっては、ドライブをまたぐ移動はできない場合があります。
  ※ このAPIの使用は推奨されません。このAPIの動作は処理系やバージョンに依存します。VCSSL 3.3 以降では、代わりに同機能の moveFile を使用してください。やむを得ずこの API を使用する必要があり、依存性を回避したい場合には、変更後のファイルパス newPath を絶対パスで指定してください。相対パスやファイル名のみを指定した場合の挙動は、処理系やバージョンに依存します。現在の標準VCSSLランタイムでは、newPath にファイル名や相対パスを指定した場合、実行プログラムの場所を基準とするものと解釈されますが、VCSSL 3.2 以前の古いバージョンなどでは、処理系の場所を基準として解釈される場合があります。絶対パスを指定すればバージョンへの依存性を回避できます。 例えば、renameFile("Test1.txt", "Test2.txt"); と記述した場合、現在の標準VCSSLランタイムでは、同じディレクトリ内で Test1.txt のファイルが Test2.txt に名称変更されます。しかし古いバージョンでは、"Test2.txt" は処理系からみた相対パスと解釈されるため、ファイルは処理系のディレクトリ（ VCSSL.jar のある場所 ）に移動されます。古いバージョンにおいても、同じディレクトリ内における名称変更を行いたい場合は、 renameFile("hoge1.txt", getFilePath("hoge2.txt", getFilePath(".")) ); などと記述します。
void copyFile( string inputPath, string outputPath )
  ファイルをコピーします。
string getFilePath( string pathOrName )
  ファイル名または相対パスから、絶対パスを取得して返します。
string getFilePath( string pathOrName, int type )
  ファイル名またはパスから、絶対パスまたは相対パス、もしくは親階層パスを取得して返します。
string getFilePath( string pathOrName, string directory )
  指定された基準ディレクトリから見たファイル名または相対パスを、絶対パスに変換取得して返します。
string getFilePath( string pathOrName, string directory, int type )
  指定された基準ディレクトリから見たファイル名または相対パスを、絶対パスまたは（実行プログラム基準の）相対パス、もしくは（実行プログラム基準の）親階層パスに変換して返します。
string[ ] getFilePath( int target )
  実行環境やオペレーティングシステムにおける特別な場所のパスを取得します。 それぞれルートディレクトリ、ユーザーのホームディレクトリ、およびコンピュータ側で用意されている一時ファイル用ディレクトリを意味します。
string getMainDirectory()
  実行プログラムがあるディレクトリのパスを返します。現在は getFilePath(".") で取得できます。この関数は互換目的でサポートされています。
string getHomeDirectory()
  ホームディレクトリのパスを返します。現在は getFilePath( HOME ) で取得できます。この関数は互換目的でサポートされています。
string[ ] getRootDirectory()
  ルートディレクトリのパスを返します。現在は getFilePath( ROOT ) で取得できます。この関数は互換目的でサポートされています。
string getParentDirectory( string pathOrName )
  親階層のパスを返します。現在は getFilePath( pathOrName, PARENT ) で取得できます。この関数は互換目的でサポートされています。
string getFileRelativePath( string pathOrName, string directory )
  指定ディレクトリから見た相対パスを、（実行プログラムから見た）相対パスに変換して返します。現在は getFilePath( pathOrName, directory, RELARIVE ) で取得できます。この関数は互換目的でサポートされています。
string[ ] getFileList( string pathOrName )
  指定ディレクトリ直下のファイル名一覧を取得します。現在は listFile( pathOrName ) で取得できます。この関数は互換目的でサポートされています。この関数では、ファイル名の整列順序は環境やオペレーティングシステムに依存します。特定の順序である事を前提とした処理は推奨されません。新しい listFile( pathOrName ) は整列オプションを指定できます。

## 構造体 - Structs

- なし - None -

## 変数 - Variables

文法的定義 - Signature | const int ABSOLUTE
変数名 - Name | ABSOLUTE
役割 - Role | 絶対パスを意味する設定値です。

文法的定義 - Signature | const int RELATIVE
変数名 - Name | RELATIVE
役割 - Role | 相対パスを意味する設定値です。

文法的定義 - Signature | const int PARENT
変数名 - Name | PARENT
役割 - Role | 親階層を意味する設定値です。

文法的定義 - Signature | const int HOME
変数名 - Name | HOME
役割 - Role | ユーザーのホームディレクトリを意味する設定値です。

文法的定義 - Signature | const int ROOT
変数名 - Name | ROOT
役割 - Role | ルートディレクトリを意味する設定値です。

文法的定義 - Signature | const int TMP
変数名 - Name | TMP
役割 - Role | コンピュータ側で用意されている一時ファイル用ディレクトリを意味する設定値です。

文法的定義 - Signature | const int UNORDERED
変数名 - Name | UNORDERED
役割 - Role | 特に整列されていないファイル順序を意味する設定値です。

文法的定義 - Signature | const int LEXICAL
変数名 - Name | LEXICAL
役割 - Role | 辞書順に整列されたファイル順序を意味する設定値です。

## 関数 - Functions

文法的定義 - Signature | bool isDirectory( string pathOrName )
関数名 - Name | isDirectory
役割 - Role | ファイルがディレクトリであるかどうかを判定します。
引数 - Arguments | (string型) pathOrName : 対象ファイルの名称またはパス。
戻り値 - Return | (bool型) ディレクトリであれば true 、そうでなければ false。

文法的定義 - Signature | void makeDirectory( string pathOrName )
関数名 - Name | makeDirectory
役割 - Role | ディレクトリを新規作成します。
引数 - Arguments | (string型) pathOrName : 作成するディレクトリの名称またはパス。
戻り値 - Return | (void型)

文法的定義 - Signature | string[ ] listDirectory( string pathOrName )
関数名 - Name | listDirectory
役割 - Role | 指定ディレクトリ直下にあるファイル名の一覧を返します。ファイル名の順序は特に整列されず、環境や処理系に依存します。
引数 - Arguments | (string型) pathOrName : 対象ディレクトリの名称またはパス。
戻り値 - Return | (string[]型) ディレクトリ直下にあるファイル名の一覧。

文法的定義 - Signature | string[ ] listDirectory( string pathOrName, bool sortByIgnoreCase, int sortOption )
関数名 - Name | listDirectory
役割 - Role | 指定ディレクトリ直下にあるファイル名の一覧を返します。ファイル名の整列オプションを指定できます。
引数 - Arguments | (string型) pathOrName : 対象ディレクトリの名称またはパス。 (bool型) sortByIgnoreCase : 整列時に大文字/小文字を区別するかどうか。true なら無視されます。 (int型) sortOption : 整列オプション。UNORDERED または LEXICAL を指定します。
戻り値 - Return | (string[]型) ディレクトリ直下にあるファイル名の一覧。

文法的定義 - Signature | void makeFile( string pathOrName )
関数名 - Name | makeFile
役割 - Role | ファイルを新規作成します。
引数 - Arguments | (string型) pathOrName : 作成するファイルの名称またはパス。
戻り値 - Return | (void型)

文法的定義 - Signature | string getFileName( string path )
関数名 - Name | getFileName
役割 - Role | ファイルパスから、ファイル名の部分を取得します。
引数 - Arguments | (string型) path : 対象ファイルのパス。
戻り値 - Return | (string型) ファイル名

文法的定義 - Signature | void removeFile( string pathOrName )
関数名 - Name | removeFile
役割 - Role | ファイルを削除します。 対象がディレクトリの場合、中身が空でなければ削除できないため、先に中身を削除する必要があります。
引数 - Arguments | path : 対象ファイルの名称またはパス。
戻り値 - Return | (void型)

文法的定義 - Signature | void moveFile( string pathOrName, string newName )
関数名 - Name | moveFile
役割 - Role | ファイルの移動や、ファイル名の変更を行います。引数が、共にファイル名のみの場合や、共に同じディレクトリ内のファイルパスである場合には、処理内容はファイル名の変更になります。引数が、互いに異なるディレクトリ内のファイルパスである場合には、処理内容はファイルの移動になります。ファイルは移動されます。ドライブをまたぐ移動はできない場合があります。
引数 - Arguments | (string型) pathOrName : 対象ファイルの名称またはパス。 (string型) newName : 変更後の名称またはパス。
戻り値 - Return | (void型)

文法的定義 - Signature | void renameFile( string pathOrName, string newName )
関数名 - Name | renameFile
役割 - Role | ファイル名を変更します。変更先にファイル名ではなくパスを指定した場合、ファイルは移動されます。ただし環境によっては、ドライブをまたぐ移動はできない場合があります。 ※ このAPIの使用は推奨されません。このAPIの動作は処理系やバージョンに依存します。VCSSL 3.3 以降では、代わりに同機能の moveFile を使用してください。やむを得ずこの API を使用する必要があり、依存性を回避したい場合には、変更後のファイルパス newPath を絶対パスで指定してください。相対パスやファイル名のみを指定した場合の挙動は、処理系やバージョンに依存します。現在の標準VCSSLランタイムでは、newPath にファイル名や相対パスを指定した場合、実行プログラムの場所を基準とするものと解釈されますが、VCSSL 3.2 以前の古いバージョンなどでは、処理系の場所を基準として解釈される場合があります。絶対パスを指定すればバージョンへの依存性を回避できます。 例えば、renameFile("Test1.txt", "Test2.txt"); と記述した場合、現在の標準VCSSLランタイムでは、同じディレクトリ内で Test1.txt のファイルが Test2.txt に名称変更されます。しかし古いバージョンでは、"Test2.txt" は処理系からみた相対パスと解釈されるため、ファイルは処理系のディレクトリ（ VCSSL.jar のある場所 ）に移動されます。古いバージョンにおいても、同じディレクトリ内における名称変更を行いたい場合は、 renameFile("hoge1.txt", getFilePath("hoge2.txt", getFilePath(".")) ); などと記述します。
引数 - Arguments | (string型) pathOrName : 対象ファイルの名称またはパス。 (string型) newName : 変更後の名称またはパス。古いバージョンや処理系への依存性を回避するため、絶対パスでの指定が推奨されます。
戻り値 - Return | (void型)

文法的定義 - Signature | void copyFile( string inputPath, string outputPath )
関数名 - Name | copyFile
役割 - Role | ファイルをコピーします。
引数 - Arguments | pathOrName : コピー元ファイルの名称またはパス。 newName : コピー先ファイルの名称またはパス。
戻り値 - Return | (void型)

文法的定義 - Signature | string getFilePath( string pathOrName )
関数名 - Name | getFilePath
役割 - Role | ファイル名または相対パスから、絶対パスを取得して返します。
引数 - Arguments | (string型) pathOrName : 対象ファイルの名称または相対パス。 newName : 対象ファイルの絶対パス。
戻り値 - Return | (string型)

文法的定義 - Signature | string getFilePath( string pathOrName, int type )
関数名 - Name | getFilePath
役割 - Role | ファイル名またはパスから、絶対パスまたは相対パス、もしくは親階層パスを取得して返します。
引数 - Arguments | (string型) pathOrName : 対象ファイルの名称またはパス。 (int型) type : 取得するパスの種類。ABSOLUTE または RELATIVE もしくは PARENT を指定します。それぞれ絶対パス、相対パス、親階層パスを意味します。
戻り値 - Return | (string型) 対象ファイルのパス。パスの種類は引数 type で指定します。

文法的定義 - Signature | string getFilePath( string pathOrName, string directory )
関数名 - Name | getFilePath
役割 - Role | 指定された基準ディレクトリから見たファイル名または相対パスを、絶対パスに変換取得して返します。
引数 - Arguments | (string型) pathOrName : 基準ディレクトリから見た、対象ファイルの名称または相対パス。 (string型) directory : 相対パスの基準ディレクトリ。実行プログラムを基準とした名称または相対パス、もしくは絶対パスで指定します。 newName : 対象ファイルの絶対パス。
戻り値 - Return | (string型)

文法的定義 - Signature | string getFilePath( string pathOrName, string directory, int type )
関数名 - Name | getFilePath
役割 - Role | 指定された基準ディレクトリから見たファイル名または相対パスを、絶対パスまたは（実行プログラム基準の）相対パス、もしくは（実行プログラム基準の）親階層パスに変換して返します。
引数 - Arguments | (string型) pathOrName : 対象ファイルの名称またはパス。 (string型) directory : 相対パスの基準ディレクトリ。実行プログラムを基準とした名称または相対パス、もしくは絶対パスで指定します。 (int型) type : 取得するパスの種類。ABSOLUTE または RELATIVE もしくは PARENT を指定します。それぞれ絶対パス、相対パス、親階層パスを意味します。
戻り値 - Return | (string型) 対象ファイルのパス。パスの種類は引数 type で指定します。

文法的定義 - Signature | string[ ] getFilePath( int target )
関数名 - Name | getFilePath
役割 - Role | 実行環境やオペレーティングシステムにおける特別な場所のパスを取得します。 それぞれルートディレクトリ、ユーザーのホームディレクトリ、およびコンピュータ側で用意されている一時ファイル用ディレクトリを意味します。
引数 - Arguments | (int型) target : 取得する特別な場所の種類。HOME または ROOT または TMP を指定します。
戻り値 - Return | (string[]型) 特別な場所のパス。場所は引数 target で指定します。target に ROOT を取得した場合の挙動はオペレーティングシステムに依存します。単一のルートが存在しないオペレーティングシステムでは、恐らくドライブ名が配列で返されます。

文法的定義 - Signature | string getMainDirectory()
関数名 - Name | getMainDirectory
役割 - Role | 実行プログラムがあるディレクトリのパスを返します。 現在は getFilePath(".") で取得できます。この関数は互換目的でサポートされています。
戻り値 - Return | (string型) 実行プログラムがあるディレクトリのパス。

文法的定義 - Signature | string getHomeDirectory()
関数名 - Name | getHomeDirectory
役割 - Role | ホームディレクトリのパスを返します。 現在は getFilePath( HOME ) で取得できます。この関数は互換目的でサポートされています。
戻り値 - Return | (string型) ホームディレクトリのパス。

文法的定義 - Signature | string[ ] getRootDirectory()
関数名 - Name | getRootDirectory
役割 - Role | ルートディレクトリのパスを返します。 現在は getFilePath( ROOT ) で取得できます。この関数は互換目的でサポートされています。
戻り値 - Return | (string[]型) ルートディレクトリのパス。

文法的定義 - Signature | string getParentDirectory( string pathOrName )
関数名 - Name | getParentDirectory
役割 - Role | 親階層のパスを返します。 現在は getFilePath( pathOrName, PARENT ) で取得できます。この関数は互換目的でサポートされています。
引数 - Arguments | (string型) pathOrName : 対象ファイルの名称またはパス。
戻り値 - Return | (string型) 親階層のパス。

文法的定義 - Signature | string getFileRelativePath( string pathOrName, string directory )
関数名 - Name | getFileRelativePath
役割 - Role | 指定ディレクトリから見た相対パスを、（実行プログラムから見た）相対パスに変換して返します。 現在は getFilePath( pathOrName, directory, RELARIVE ) で取得できます。この関数は互換目的でサポートされています。
引数 - Arguments | (string型) pathOrName : 対象ファイルの名称またはパス。 (string型) directory : 基準ディレクトリのパス。
戻り値 - Return | (string型) 親階層のパス。

文法的定義 - Signature | string[ ] getFileList( string pathOrName )
関数名 - Name | getFileList
役割 - Role | 指定ディレクトリ直下のファイル名一覧を取得します。 現在は listFile( pathOrName ) で取得できます。この関数は互換目的でサポートされています。 この関数では、ファイル名の整列順序は環境やオペレーティングシステムに依存します。特定の順序である事を前提とした処理は推奨されません。新しい listFile( pathOrName ) は整列オプションを指定できます。
引数 - Arguments | (string型) pathOrName : 対象ディレクトリの名称またはパス。
戻り値 - Return | (string[]型) 指定ディレクトリ直下のファイル名一覧（順序は環境依存）