ディレクトリを読み取り、それらのファイルの名前をリストに入力したいと思います。
javascriptを使用してこのタスクを実行することは可能ですか?
いいえ、できません。誰かにあなたのディレクトリの内容を読んでもらいたいですか?
更新webkitdirectory
:属性を使用することで得られる可能性のある最も近いものだと思います:
HTML
<input type="file" id="file_input" webkitdirectory="" directory="" />
<div id="list_of_files"></div>
...
JS
var $list = $('#list_of_files');
$('#file_input').change(function(event) {
var listOfFiles = event.target.files;
for (var i = 0, l = listOfFiles.length; i < l; ++i) {
$list.append($('<p>'+ listOfFiles[i].name +'</p>'));
}
});
...ここに示すように。ただし、Chromeでのみ機能します(mozdirectory
属性の推奨される使用法は役に立ちませんでした)。
いいえ、セキュリティ上の理由から。
ActiveXまたはFlashを呼び出し、ユーザーにこれらのプラグインからのファイルシステムアクセスを許可することに同意してもらうことで、それを実行できる場合がありますが、許可しないでください。
10年後の編集:これを行わないでください。更新なしで古いデバイスを使用する以外に、Flash/ActiveXではこれを行うことはできません。
オブジェクトの使用を試みることはできFileReader
ますが、ブラウザでは十分にサポートされていません。
グーグルクロームでは、クライアントにディレクトリを選択するように促し、これを使用してディレクトリとそのサブディレクトリに含まれるファイルを一覧表示できます。
<input type="file" webkitdirectory onchange="listContents(this.files)">
listContents
あなたの実装になります。
セキュリティ研究などをしているのかわからないので、「やってはいけない」と言うだけでなく、書き下ろしのJSコードを利用して実際にファイルを読むことができるのです。 、それがあなたがコーディングしなければならない理由です..防御的に。
次に、これがあります:http ://www.html5rocks.com/en/tutorials/file/dndfiles/
はい、お使いのブラウザによって異なります。
一般的な方法ではありませんが、Chrome などの特定のブラウザー (webkitRequestFileSystem でサポートされている requestFileSystem を使用) や、File System Object を使用する Internet Explorer を使用できます。