hakeの日記

Windows環境でプログラミングの勉強をしています。

javascript Windows環境でのローカルPCのフォルダアクセス

fso.GetFolder()でFolderオブジェクトを取得して、そのプロパティにて各種情報にアクセスする。filesプロパティではサブフォルダの要素が取得できないことに注意、SubFoldersプロパティを使用する。

<!DOCTYPE html>
<html lang='ja'>
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<title>ローカルフォルダ内のファイルリスト表示(IEのみ)</title>
<script type="text/javascript">

	function print(str){
		var s = str + '<br>';
		document.getElementById('result').innerHTML += s;
	}

	window.onload = function(){
		var fso, fd, fs, it;
		var target = 'c:\\work\\javascript';

		fso = new ActiveXObject('Scripting.FileSystemObject');

		// https://msdn.microsoft.com/ja-jp/library/cc428096.aspx
		fd = fso.GetFolder(target); // 指定フォルダのFolderオブジェクトを返す。
		print('FolderName : ' + fd.Name);
		print('FolderPath : ' + fd.Path);
		print('---');
		print('ParentFolderPath : ' + fd.ParentFolder.Path);

		//ファイルリスト表示
		print('--Files--');
		fs = fd.files;            // フォルダ内のFileコレクションを返す。
		for (it = new Enumerator(fs); !it.atEnd(); it.moveNext()){
			print(it.item());
		}

		//サブフォルダリスト表示
		print('--Sub Folders-');
		fs = fd.SubFolders;       // フォルダ内のFoldersコレクションを返す。
		for (it = new Enumerator(fs); !it.atEnd(); it.moveNext()){
			print(it.item());
		}
	}

</script>
</head>
<body>
結果<br>
<div id='result'></div>
</body>
</html>