この翻訳は不完全です。英語から この記事を翻訳 してください。

非標準
この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。

File System APILocalFileSystem インターフェイスを使用すると、サンドボックスファイルシステムにアクセスできます。 これらのメソッドは、window オブジェクトと worker オブジェクトによって実装されます。

基本のコンセプト

このセクションには、メソッドの主要な概念がいくつか含まれています。

Creating new storage

You request access to a sandboxed file system by calling window.requestFileSystem(). The argument of a successful callback is the FileSystem object, which has two properties: the name and root of the file system.

You can call the method more than once if you want to create two file systems: one that's temporary and one that's persistent. (To learn more about the storage types, see the Basic Concepts article.) In most cases, you need to create only one file system, but in a few cases, it might be useful to create a second one. For example, if you were to create a mail app, you might create a temporary storage for caching assets (like images and attachments) to speed up performance, while creating persistent storage for unique data—such as drafts of emails that were composed while offline—that should not be lost before they are backed up into the cloud.  

Using persistent storage

The requestFileSystem() method lets you ask for PERSISTENT or TEMPORARY storage. Persistent storage is storage that stays in the browser unless the app or the user removes it, but the user must grant you permission before you can use it. In contrast, temporary storage is automatically granted without any user permission, but it can be expunged by the browser at any time.

To use PERSISTENT storage with the File System API, Chrome exposes a requestQuota  API. So to request storage, you need to do something like the following:

var requestedBytes = 1024*1024*10; // 10MB

navigator.webkitPersistentStorage.requestQuota (
    requestedBytes, function(grantedBytes) {  
        window.requestFileSystem(PERSISTENT, grantedBytes, onInitFs, errorHandler);

    }, function(e) { console.log('Error', e); }
);

Your user must grant your app permission to store data locally before your app can use persistent storage. Once your user grants it, you don't need to call requestQuota() again. Subsequent calls are a noop.

Another API, the Quota Management API, lets you query an origin's current quota usage and allocation using window.webkitPersistentStorage.queryUsageAndQuota(). To learn more, see this StackOverflow Answer. (An older version of the API is described at Managing HTML5 Offline Storage.)

Working within a single origin

 The file system is sandboxed to a single origin. This means that your app cannot read, or write the files of another app's files. Your app cannot access files in an arbitrary folder (such as, My Pictures, My Documents) on the user's hard drive either. For more information about restrictions, see the Basic Concepts article. 

The following is a code snippet that shows how you can request a file system storage.

//Taking care of the browser-specific prefix
window.requestFileSystem  = window.requestFileSystem || window.webkitRequestFileSystem;

// The first parameter defines the type of storage: persistent or temporary
// Next, set the size of space needed (in bytes)
// initFs is the success callback
// And the last one is the error callback
// for denial of access and other errors. 

window.requestFileSystem(window.PERSISTENT, 1024*1024,onInitFs,errorHandler);

メソッド概要

void requestFileSystem (in unsigned short type, in unsigned long long size, in FileSystemCallback successCallback, in optional ErrorCallback errorCallback);
void resolveLocalFileSystemURL (in DOMString url, in EntryCallback successCallback, in optional ErrorCallback errorCallback);

定数

定数 説明
TEMPORARY 0

一時的なストレージで、ブラウザの裁量で削除することができます。

PERSISTENT 1 ユーザーまたはアプリがそれを消去しない限り、ブラウザに保存されているストレージ。アプリがこのタイプのストレージを使用するには、その前にユーザーに許可を与える必要があります。

メソッド

requestFileSystem()

Requests a file system where data should be stored. You access a sandboxed file system by requesting a LocalFileSystem object using this global method, window.requestFileSystem().

void requestFileSystem(
  in unsigned short type, 
  in unsigned long long size, 
  in FileSystemCallback successCallback, 
  in ErrorCallback errorCallback
);
Parameters
type
The storage type of the file system. The values can be either TEMPORARY or PERSISTENT.
size
The storage space—in bytes—that you need for your app.
successCallback
The success callback that is called when the browser provides a file system. Its argument is the FileSystem object with two properties:
  • name - the unique name assigned by the browser to the file system.
  • root - the read-only DirectoryEntry object representing the root of the file system.
opt_errorCallback
The error callback that is called when errors happen or when the request to obtain the file system is denied. Its argument is the FileError object.
Returns
void
Exceptions

This method can raise an FileError with the following code:

Exception Description
SECURITY_ERROR The application does not have permission to access the file system interface. For example, you cannot run from file://. For more details, see the article on basic concepts.

resolveLocalFileSystemURL()

Lets you look up the entry for a file or directory with a local URL.

void resolveLocalFileSystemURL(
  in DOMString url, 
  in EntryCallback successCallback, 
  in optional ErrorCallback errorCallback
);
Parameters
url
The URL of a local file in the file system.
successCallback
The success callback that is called when the browser provides the file or directory for the supplied URL.
errorCallback
The error callback that is called when errors happen or when the request to obtain the entry object is denied.
Returns
void
Exceptions

This method can raise an FileError with the following code:

例外 説明
ENCODING_ERR The syntax of the URL was invalid.
NOT_FOUND_ERR The URL was structurally correct, but refers to a resource that does not exist.
SECURITY_ERR The application does not have permission to access the file system interface.

ブラウザの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
LocalFileSystem
非標準
Chrome 完全対応 13
接頭辞付き
完全対応 13
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge ? Firefox 未対応 なしIE 未対応 なしOpera 未対応 なしSafari 未対応 なしWebView Android 完全対応 あり
接頭辞付き
完全対応 あり
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Chrome Android 完全対応 あり
接頭辞付き
完全対応 あり
接頭辞付き
接頭辞付き webkit のベンダー接頭辞が必要
Edge Mobile ? Firefox Android 未対応 なしOpera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android ?
requestFileSystem
非標準
Chrome 完全対応 13Edge ? Firefox 未対応 なしIE 未対応 なしOpera 未対応 なしSafari 未対応 なしWebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile ? Firefox Android 未対応 なしOpera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android ?
resolveLocalFileSystemURL
非標準
Chrome 完全対応 13Edge ? Firefox 未対応 なしIE 未対応 なしOpera 未対応 なしSafari 未対応 なしWebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile ? Firefox Android 未対応 なしOpera Android 未対応 なしSafari iOS 未対応 なしSamsung Internet Android ?

凡例

完全対応  
完全対応
未対応  
未対応
実装状況不明  
実装状況不明
非標準。ブラウザー間の互換性が低い可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。
使用するには、ベンダー接頭辞または異なる名前が必要です。
使用するには、ベンダー接頭辞または異なる名前が必要です。

あわせて参照

仕様書:File API: Directories and System SpecificationWD

リファレンス: File System API

イントロダクション: Basic Concepts About the File System API

ドキュメントのタグと貢献者

このページの貢献者: mdnwebdocs-bot, silverskyvicto
最終更新者: mdnwebdocs-bot,