2

私は新しい JS ファイル システム機能のいくつかをテストしています。つまり、ローカル ファイル システムに空のテキスト ファイルを作成します。ローカル パス (file:///) から HTML および JS ファイルを実行しています。この目的のために--allow-file-access-from-files、CLI のフラグを使用して Google Chrome を起動しました。ファイルシステムのリクエストは PERSISTENT (および動作) です。

ファイルシステムに関するさまざまな投稿を読み、チュートリアルのコードの一部をコピーして変更しました。HTML ファイルを起動すると、カスタムの成功/失敗メッセージがコンソールに出力されます。

結果は次のとおりです。

Opened file system:/   // this is the root path of the JS Filesystem.

/wtf.txt  // this is the name and path of the text file I created+ it's a success

ただし、自分のディレクトリ (システム ルートとアプリケーション ルートの両方) を見ると、割り当てた名前の .txt ファイルがありません。Javascriptが実際にこのファイルを書いた場所を知るにはどうすればよいですか? どの「ルート」で (「ルート」を割り当てることができないため)? FileSystem が「サンドボックス」であるとはどういう意味ですか? ローカル ドライブの (仮想?) コンテンツにアクセスできないが、JS でしかアクセスできない? この場合、ユーザーにファイルを保存するように求める方法はありますか?

回答ありがとうございます

4

1 に答える 1

4

ファイル システム API が OS ファイル システムと同様にローカルで動作することを期待しているようです。クライアントはそのようには機能しません。実際、API は、プログラマとして、ファイルやディレクトリへのインターフェイスとして設計されています。クライアント自体 (Chrome など) が残りをローカル レベルで処理します。API は、ブラウザ経由でファイルを作成し、オペレーティング システム経由で簡単にアクセスできるようには設計されていません。

Javascriptが実際にこのファイルを書いた場所を知るにはどうすればよいですか? どの「ルート」で (「ルート」を割り当てることができないため)?

技術的に言えば、各クライアントは選択したとおりにローカルに保存できます。そのため、ローカル ファイル システムにアクセスしてファイルを探すことはできますが、そうしようとしている場合は、アプローチに何か問題があります。ファイル システム API はそのためのものではありません。あなたの質問に対して、クライアントのストレージ領域にコンテンツがある場合 (たとえば、Chrome の場合は "C:\Users\USERNAME\AppData\Local\Google\Chrome\User Data\Default\File System\" のようなもの)、 JavaScript がそれを書いたと考えることができます。ただし、ローカル システムでのユーザー フレンドリーなブラウジング用には設定されていません。

FileSystem が「サンドボックス」であるとはどういう意味ですか?

サンドボックスとは、特定の目的のために作成および確保された領域を意味し、その外側ではクライアントは表示/アクセスできません。Mozilla からこれを参照してください: https://developer.mozilla.org/en-US/docs/WebGuide/API/File_System/Introduction#virtual

ローカル ドライブの (仮想?) コンテンツにアクセスできないが、JS でしかアクセスできない?

それは正しく、設計によるものです。

この場合、ユーザーにファイルを保存するように求める方法はありますか?

私があなたの質問を正しく理解していれば、特定のファイルをユーザーに提供し、それをローカルに保存するように促す方法があるかどうかを尋ねています。もちろん、ファイルへのリンクを提供する (または別のディスカッションにプッシュする) 場合、プラットフォームで許可されている場合、クライアントはユーザーに保存/保存するように求めます。ただし、ローカルで保存する場所を制御することはできず、後で取得することもできません. あなたの質問を誤解している場合は、以下にコメントしてください。フォローアップします。

于 2013-08-22T05:45:25.243 に答える