1

デスクトップアプリケーションのプロジェクトに取り組んでいます。Visual C++ でQtコントロールを使用しています。QWebViewにhtmlファイルをロードしています。

m_pWebView->load(QUrl("../../../demo/index_Splash_Screen.html"));

ここで、たとえば、「c:\demo」という場所にいくつか.zipのファイルがあり、そのディレクトリに存在するファイルのリスト (またはファイル名の配列) が必要です。

javascript を使用してこれを行うにはどうすればよいですか?

PS:このリンクをたどりましたが、要件と一致しませんでした。私は、html、javascript、および jquery を使用したことがありません。私を助けてください。

4

2 に答える 2

2

セキュリティ上の問題により、javascript を使用してローカル ファイルまたはディレクトリにアクセスすることはできません。

編集:私はファイルAPIについて考えていなかったので、これは真実ではないかもしれないと一瞬考えましたが、許可を与えるためのユーザー入力がなければ、これはまだ実行できません.

この質問には、PhilNicholas からの良い回答があります。

残念ながら、私はあなたの設計にとって悪いニュースの担い手かもしれません: あなたが要求しているアクションは、ファイル API 仕様で指定されているセキュリティ モデルに明示的に違反しています。FileReader() のクライアント実装では、「FileReader オブジェクトによって読み取られるすべてのファイルが最初にユーザーによって選択されている」ことを確認する必要があります。(W3C ファイル API 、13. セキュリティに関する考慮事項: http://www.w3.org/TR/FileAPI/#security-discussion )。

ユーザーの介入なしに、ブラウザー スクリプトが勝手に任意のファイルをパスから開いて読み取ることができてしまうと、セキュリティ上の大きなリスクになります。そのようなファイル システム全体への自由なアクセスを許可するブラウザ メーカーはありません。

ただし、考えてみると、すべてがローカルで実行されている場合は、ajax を使用して、要求したディレクトリを返すサーバー サイド スクリプトをクエリできます。

于 2013-11-28T11:41:59.423 に答える
1

Windows アプリケーションの場合は、ActiveX オブジェクトを使用してローカル ファイル システムにアクセスできます。あなたはこのリンクを見ているかもしれませんJavascriptからtxtファイルを読む

ActiveX の使用は、ブラウザ/エンジンとして IE を使用している場合にのみ可能であることに注意してください。HTML アプリケーション (.hta ファイル) を開発するために、少し前に必要でした。

于 2013-11-28T11:52:09.843 に答える