FileSystem.Mountメソッド

 

説明

任意のフォルダを仮想ファイル名にマウントします。

 

例えば、C:\tempに対して/app/dataのような仮想ファイル名でアクセスできるようになります。

 

Mountメソッドは、プライベート属性の場合のみ呼び出すことができ、パブリック属性の場合はRTM-16の例外が発生します。

 

マウントに成功すると、それ以降は仮想ファイル名でマウントしたフォルダにアクセスできます。Unmountメソッドでマウントを解除できます。

マウントされた状態は、マウントしたFileSystemオブジェクトのみ有効です。複数のFileSystemオブジェクト間でマウント状態が共有されることはありません。

 

より追加されました

 

 

セキュリティ警告ダイアログ

 

Mountメソッドを呼び出すと以下のセキュリティ警告ダイアログが表示されます。

 

 

このダイアログでユーザがOKを選択しない限りマウントは成功しません。キャンセルを選択した場合、RTM-19の例外が発生します。

 

マウントされるフォルダは「別のフォルダを選択」によりユーザが選択したフォルダです。マウント対象のフォルダ名を指定した場合はフォルダ選択の初期値となりますが、ユーザの選択が優先されます。実際にユーザがどの物理フォルダを選択したかはMapPathメソッドで確認できます。

 

セキュリティ上の理由から、システム属性のフォルダや、システム属性のファイルやフォルダを含むフォルダは選択できません。

より制限を緩和し、通常のフォルダにシステム属性のファイルやフォルダが含まれていても選択できるようになりました。システム属性のフォルダは選択できません。

 

セキュリティ警告ダイアログで「今後、このメッセージを表示しない」をチェックしてOKを選択した場合、以降のマウントでは後述のマウント情報の記録の条件が一致すれば、警告ダイアログを表示せずに前回と同じフォルダに自動的にマウントします。

ただし、フォルダが削除されていてアクセスできないなど、そのフォルダがマウントの対象として指定できない状態に変わっている場合は、再度セキュリティ警告ダイアログが表示されます。

 

 

マウントポイント

 

マウントするフォルダにアクセスするための仮想ファイル名がマウントポイントです。

マウントポイントにルートフォルダ("/")を指定することはできません。必ず、名前を指定する必要があります。

すでに同じマウントポイントにマウントが行われている場合は、RTM-17の例外が発生します。

 

マウントポイントは、実際のフォルダが存在する必要はありません。例えば、ルートフォルダ以外のフォルダが存在しない状態でも、/app/dataをマウントポイントにできます。マウントポイントに実際のフォルダが存在する場合は、マウントにより隠されてアクセスできなくなります。

 

 

マウント情報のローカルコンピュータへの記録

 

マウントに成功すると、マウントしたフォルダやセキュリティ警告ダイアログの情報が、マウント情報としてローカルコンピュータに記録され、以降、同じ条件でマウントするときに使用されます。

マウント情報は、以下の条件をキーにして記録されます。

・ログインユーザ(Windows98Meでユーザ共通設定のときを除く)

CRSをダウンロードしたサーバ名

マウントポイントの仮想ファイル名

 

例えば、セキュリティ警告ダイアログで「今後、このメッセージを表示しない」を選択した場合は、この記録されたマウント情報を使ってマウントします。

マウント情報は、セキュリティ警告ダイアログで「キャンセル」を選択したときや、Unmountメソッドでマウント記録の削除を指定したときに削除されます。

 

 

セキュリティレベルによる動作の違い

 

レベル

説明

0

警告ダイアログは表示されません。

マウント情報がローカルコンピュータに記録されていない場合(初回マウント時など)は、folderに指定したフォルダに即座にマウントします。

1

2

「今後、メッセージを表示しない」を選択後は警告ダイアログは表示されません。

3

4

常に警告ダイアログを表示します。

 

 

Mobile, Android版独自の拡張

 

セキュリティ確認ダイアログを表示するかどうかのnoConfirmパラメータが追加されています。

noConfirmパラメータに$TRUEを指定すると警告ダイアログは表示されずにマウントされます。

また、警告ダイアログの「今後、このメッセージを表示しない」をチェックしたと見なされます。

 

 

呼出形式

fs.Mount( purpose, path [, folder ] )

 

Mobile, Android

fs.Mount( purpose, path [, folder [, noConfirm ] ] )

 

戻り値

なし

 

引数

String purpose

マウント確認ダイアログの「利用目的」欄に表示される文字列

 

String path

マウントポイントとなる仮想ファイル名

 

String folder

マウント対象のフォルダ名

マウントポイントに対応するマウント情報がローカルコンピュータに記録されている場合は無視されます。

 

boolean noConfirm

マウント確認ダイアログを表示しない

 

例外

RTM-16

プライベートファイルシステム以外のマウント操作はできません

 

RTM-17

マウントポイントには既にフォルダがマウントされています

 

RTM-18

レジストリアクセスエラー

 

RTM-19

マウントはユーザにより中止されました

 

RTM-23

ルートフォルダにマウントすることはできません

 

RTM-24

パスが不正です

 

使用例

var fs = new FileSystem(FileSystem.PRIVATE_ROOT);
var path = "/app/data";
fs.Mount("データフォルダ", path, "c:\\temp");
var f = fs.Open(fs.MakePath(path, "sample.txt"), FileSystem.OPEN_WRITE);
f.WriteString("sample");
f.Close();
fs.Unmount(path);

 

関連項目

FileSystemコンストラクタ

MapPathUnmountメソッド

 



「オンラインマニュアル」一覧へ戻る
「Bizの宝箱」TOPへ戻る