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