其實這種功能,網上相關的代碼多的是,我也是因為今天正好要用到這個功能,所以臨時寫了下,放這裡保存下,以便將來自己或者別人用的上吧。 當然我寫的是一個hta文件。下麵是完整js代碼,都是調用activex控制項去做事,所以也沒有考慮瀏覽器相容什麼的。 代碼主要分為: 1.選擇目標文件夾 2.遍歷目標文件 ...
其實這種功能,網上相關的代碼多的是,我也是因為今天正好要用到這個功能,所以臨時寫了下,放這裡保存下,以便將來自己或者別人用的上吧。
當然我寫的是一個hta文件。下麵是完整js代碼,都是調用activex控制項去做事,所以也沒有考慮瀏覽器相容什麼的。
代碼主要分為:
1.選擇目標文件夾
2.遍歷目標文件夾中的文件
3.根據需要解析xml文件里內容
4.把解析出來的文件內容存到txt中
<script type='text/javascript'> var fso; //入口方法 div#id=tips 顯示提示信息 function st(){ document.getElementById('tips').innerText='開始分析,請稍等'; setTimeout( dosth, 100 ) } //遍歷文件夾方法 function dosth(){ try{ fso=new ActiveXObject("Scripting.FileSystemObject"); }catch(e){ alert(e.message); } DeleteLog(); writetxt('xx,xx,xx'); var path=document.getElementById('path').innerText; var f = fso.GetFolder(path); var fc = new Enumerator(f.files); for (; !fc.atEnd(); fc.moveNext()) { readxml(fc.item().Name); } } //讀取xml方法 function readxml(file) { var xmlDoc; xmlDoc = new ActiveXObject('Microsoft.XMLDOM');//IE瀏覽器 xmlDoc.async = false; file=document.getElementById('path').innerText+'\\'+file; xmlDoc.load(file); var target=xmlDoc.getElementsByTagName("target") ; for(var i=0;i<target.length;i++){ var vue=''; if(target[i].getElementsByTagName('ip').length>0){ vue=target[i].getElementsByTagName('ip')[0].childNodes[0].nodeValue; } vue+=','; if(target[i].getElementsByTagName('port').length>0){ vue+=target[i].getElementsByTagName('port')[0].childNodes[0].nodeValue; } vue+=','; if(target[i].getElementsByTagName('protocol').length>0){ vue+=target[i].getElementsByTagName('protocol')[0].childNodes[0].nodeValue; } writetxt(vue); } setTimeout( function(){ document.getElementById('tips').innerText='分析完成,生成result.txt在所選文件夾中'; },100) } //內容寫入txt方法 function writetxt(vue){ if (!fso.FileExists(document.getElementById('path').innerText+ "\\result.txt")) { fso.createtextfile(document.getElementById('path').innerText+ "\\result.txt",true); } var f = fso.OpenTextFile(document.getElementById('path').innerText+ "\\result.txt", 8, true); f.WriteLine(vue); f.close(); } //結果刪除方法 function DeleteLog() { var strFolder =document.getElementById('path').innerText+ "\\result.txt"; if (fso.FileExists(strFolder)) { var f1 = fso.GetFile(strFolder);//獲取指定文件,接下來刪除 f1.Delete(); } } //彈出文件夾選擇的方法 ,button點擊時彈出,選擇的文件夾路徑保存到div#id=path function filesel(){ var filePath; var objSrc = new ActiveXObject("Shell.Application").BrowseForFolder(0, '請選擇保存路徑', 0, ''); if (objSrc != null) { filePath = objSrc.Items().Item().Path; document.getElementById('path').innerText=filePath; if (filePath.charAt(0) == ':') { alert('請選擇文件夾.'); return; } } } </script>