説明
chrome.fileSystem
API を使用して、ユーザーのローカル ファイル システムの作成、読み取り、移動、書き込みを行います。この API を使用すると、Chrome アプリでユーザーが選択した場所に対する読み取りと書き込みが可能になります。たとえば、テキスト エディタ アプリは、この API を使用してローカル ドキュメントを読み書きできます。すべてのエラーは chrome.runtime.lastError を介して通知されます。
権限
fileSystem
可用性
型
AcceptOption
プロパティ
-
description
string(省略可)
このオプションの説明(省略可)です。指定しない場合、説明が自動的に生成されます。通常は、有効な拡張機能のリストが展開されてリストされます(例: 「text/html」は「*.html, *.htm」に展開されます)。
-
extensions
string[] 省略可
受け入れられる拡張機能(「jpg」、「gif」、「crx」など)。
-
mimeTypes
string[] 省略可
受け入れる MIME タイプ(「image/jpeg」、「audio/*」など)。いずれかの mimeType または拡張機能には 1 つ以上の有効な要素が含まれている必要があります。
ChooseEntryOptions
プロパティ
-
受け入れる
AcceptOption[] 省略可
このファイル オープナーの承認オプションのリスト(省略可)。各オプションは、一意のグループとしてエンドユーザーに表示されます。
-
acceptsAllTypes
ブール値(省略可)
allow 引数で指定されたオプションに加えて、すべてのファイル形式を受け入れるかどうかを指定します。デフォルトは true です。承認フィールドが設定されていない場合、または有効なエントリが含まれていない場合は、常に true にリセットされます。
-
acceptsMultiple
ブール値(省略可)
複数のファイルを受け入れるかどうか。これは、openFile と openWritableFile でのみサポートされています。この値が true に設定されている場合、ChooseEntry へのコールバックがエントリのリストとともに呼び出されます。それ以外の場合は、単一のエントリで呼び出されます。
-
suggestedName
string(省略可)
推奨されるファイル名。読み書きするデフォルトの名前としてユーザーに提示されます。これは省略可能です。
-
type
ChooseEntryType 省略可
表示するプロンプトのタイプ。デフォルトは「openFile」です。
ChooseEntryType
列挙型
"openFile"
既存のファイルを開くようにユーザーに促し、成功した場合は FileEntry を返します。Chrome 31 以降では、アプリケーションの「fileSystem」に「write」権限が付与されていれば、FileEntry は書き込み可能となります。それ以外の場合、FileEntry は読み取り専用になります。
"openWritableFile"
既存のファイルを開くようにユーザーに促し、成功した場合は書き込み可能な FileEntry を返します。アプリケーションに「fileSystem」の下にある「write」権限がない場合、このタイプの呼び出しはランタイム エラーで失敗します。
"saveFile"
既存のファイルまたは新しいファイルを開くようにユーザーに促し、成功した場合は書き込み可能な FileEntry を返します。アプリケーションに「fileSystem」の下にある「write」権限がない場合、このタイプの呼び出しはランタイム エラーで失敗します。
"openDirectory"
ディレクトリを開くようユーザーに求め、成功すると DirectoryEntry を返します。アプリケーションに「fileSystem」の「directory」権限がない場合、このタイプを使用した呼び出しはランタイム エラーで失敗します。アプリケーションが「fileSystem」の下にある「write」権限を持っている場合、返された DirectoryEntry は書き込み可能で、それ以外の場合は読み取り専用になります。Chrome 31 の新機能。
RequestFileSystemOptions
プロパティ
-
volumeId
string
リクエストされたボリュームの ID。
-
書き込み可能
ブール値(省略可)
リクエストされたファイル システムが書き込み可能かどうか。デフォルトは読み取り専用です。
Volume
プロパティ
-
volumeId
string
-
書き込み可能
boolean
VolumeListChangedEvent
プロパティ
-
volumes
ボリューム[]
メソッド
chooseEntry()
chrome.fileSystem.chooseEntry(
options?: ChooseEntryOptions,
callback: function,
)
ファイルまたはディレクトリを選択するようにユーザーに依頼します。
パラメータ
-
オプション
-
callback
機能
callback
パラメータは次のようになります。(entry?: Entry, fileEntries?: FileEntry[]) => void
-
エントリ
エントリ(省略可)
-
fileEntries
FileEntry[] 省略可
-
getDisplayPath()
chrome.fileSystem.getDisplayPath(
entry: Entry,
callback?: function,
)
Entry オブジェクトの表示パスを取得します。表示パスは、ローカル ファイル システム上のファイルまたはディレクトリのフルパスに基づいていますが、表示のために読みやすくすることもできます。
パラメータ
-
エントリ
エントリ
-
callback
関数(省略可)
callback
パラメータは次のようになります。(displayPath: string) => void
-
displayPath
string
-
戻り値
-
Promise<文字列>
Chrome 117 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
getVolumeList()
chrome.fileSystem.getVolumeList(
callback?: function,
)
requestFileSystem()
で使用可能なボリュームのリストを返します。"fileSystem": {"requestFileSystem"}
マニフェスト権限が必要です。キオスク セッションで実行されているキオスクアプリでのみ使用できます。エラーが発生した場合は、volumes
が未定義になり、chrome.runtime.lastError
が設定されます。
戻り値
-
Chrome 117 以降
Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
getWritableEntry()
chrome.fileSystem.getWritableEntry(
entry: Entry,
callback: function,
)
別のエントリから書き込み可能なエントリを取得します。アプリケーションに「fileSystem」の下にある「write」権限がない場合、この呼び出しはランタイム エラーで失敗します。エントリが DirectoryEntry の場合、アプリケーションに「fileSystem」の下にある「directory」権限がない場合、この呼び出しは失敗します。
パラメータ
-
エントリ
エントリ
-
callback
機能
callback
パラメータは次のようになります。(entry: Entry) => void
-
エントリ
エントリ
-
isRestorable()
chrome.fileSystem.isRestorable(
id: string,
callback?: function,
)
指定された ID のエントリを復元する権限がアプリにあるかどうかを返します。
パラメータ
-
id
string
-
callback
関数(省略可)
callback
パラメータは次のようになります。(isRestorable: boolean) => void
-
isRestorable
boolean
-
戻り値
-
Promise<boolean>
Chrome 117 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
isWritableEntry()
chrome.fileSystem.isWritableEntry(
entry: Entry,
callback?: function,
)
この Entry が書き込み可能かどうかを取得します。
パラメータ
-
エントリ
エントリ
-
callback
関数(省略可)
callback
パラメータは次のようになります。(isWritable: boolean) => void
-
isWritable
boolean
-
戻り値
-
Promise<boolean>
Chrome 117 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
requestFileSystem()
chrome.fileSystem.requestFileSystem(
options: RequestFileSystemOptions,
callback?: function,
)
options.volumeId
で表されるボリュームのファイル システムへのアクセスをリクエストします。options.writable
が true に設定されている場合、ファイル システムは書き込み可能です。それ以外の場合は読み取り専用になります。writable
オプションを使用するには、マニフェストで "fileSystem": {"write"}
権限が必要です。キオスク セッションで実行されているキオスクアプリでのみ使用できます。キオスクモードを手動で起動している場合は、アクティブなアプリ ウィンドウの上部に確認ダイアログが表示されます。エラーが発生した場合は、fileSystem
が未定義になり、chrome.runtime.lastError
が設定されます。
パラメータ
-
オプション
-
callback
関数(省略可)
callback
パラメータは次のようになります。(fileSystem?: FileSystem) => void
-
fileSystem
FileSystem(省略可)
-
戻り値
-
Promise<FileSystem | undefined>
Chrome 117 以降Promise は Manifest V3 以降でのみサポートされます。他のプラットフォームではコールバックを使用する必要があります。
restoreEntry()
chrome.fileSystem.restoreEntry(
id: string,
callback: function,
)
復元できる場合は、指定された ID のファイル エントリを返します。それ以外の場合、この呼び出しはランタイム エラーで失敗します。
パラメータ
-
id
string
-
callback
機能
callback
パラメータは次のようになります。(entry: Entry) => void
-
エントリ
エントリ
-
retainEntry()
chrome.fileSystem.retainEntry(
entry: Entry,
)
指定したファイル エントリへのアクセスを復元するために restoreEntry に渡すことができる ID を返します。最近使用された 500 個のエントリのみが保持されます。retainEntry と restoreEntry の呼び出しは使用としてカウントされます。アプリの「fileSystem」に「retainEntries」権限がある場合、エントリは無期限に保持されます。それ以外の場合、エントリはアプリの実行中および再起動後も保持されます。
パラメータ
-
エントリ
エントリ
戻り値
-
string
イベント
onVolumeListChanged
chrome.fileSystem.onVolumeListChanged.addListener(
callback: function,
)
使用可能なボリュームのリストが変更されたときに呼び出されます。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(event: VolumeListChangedEvent) => void
-
event
-