JS 操作文件案例,遍歷文件,並隨機抽取

<html>
<head>Sam遍歷文件夾,隨機抽取</head>
<script language="javascript">

//要遍歷的圖片地址,注意地址要用\\
var picPath="C:\\Users\\Administrator.USER-20160321ID\\Desktop\\隨機取圖片\\測試圖片\\";

//移動抽取到的圖片要保存的地方
var eFolder='C:\\Users\\Administrator.USER-20160321ID\\Desktop\\隨機取圖片\\get\\';

//要隨機取的圖片數量,數量不可大於遍歷的文件數量
var getPicCount=5;

//mType爲1 移動,type爲0 複製
var mType=0;

//----------注意!!!非技術人員,以下請不要更改!!!本程序Sam原創
var s = "";
var result = [];
function FileInfo(path, name,time) {
  this.path = path;
  this.name = name;
  this.time = time;
}
function showFolderFileList(folderspec)
{
   var fso,f,fc,name;
   var url,str,file,filename;
   fso = new ActiveXObject("Scripting.FileSystemObject");
   f = fso.GetFolder(folderspec);
   fc = new Enumerator( f.files );
   for (; !fc.atEnd(); fc.moveNext( ) ) {
      filename = fso.GetFileName( fc.item( ) );
      var file = fso.getFile(folderspec + "\\" + filename);
      var fileInfo = new FileInfo(folderspec, filename,file.DateLastModified);
      result.push(fileInfo);
   }
   var Collection = new Enumerator(f.SubFolders);  
  
       for (Collection.moveFirst(); !Collection.atEnd(); Collection.moveNext()) {  
        var Obj = Collection.item();  
        showFolderFileList(Obj.Path);
    }  
   return result;
}
function display_result(result)
{
   var body = document.getElementById("mtbody");
   var size = result.length;
   var tr = document.getElementById("mtr");
   for( var i =0; i < size; i++ ) {
      var newTr = tr.cloneNode(true);
      var children = newTr.children;
      for( var j = 0 ; j < children.length; j++) {
        var item = children.item(j);
        switch(j) {
          case 0:
            item.innerHTML = result[i].path;
            break;
          case 1:
            item.innerHTML = '<a href="'+result[i].path+'\\'+result[i].name+'" target="_blank">'+result[i].name+'</a>';
            break;
          //case 2:
            //item.innerHTML = result[i].time;
        }
      }
      body.appendChild(newTr);
    }
}

//隨機取數函數
function getRandomArrayElements(arr, count) {
    var shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index;
    while (i-- > min) {
        index = Math.floor((i + 1) * Math.random());
        temp = shuffled[index];
        shuffled[index] = shuffled[i];
        shuffled[i] = temp;
    }
    return shuffled.slice(min);
}

function run() {
  var list_result = showFolderFileList(picPath);//開始遍歷目錄
  display_result(list_result);//顯示所有文件
  document.getElementById("picCounts").innerHTML=list_result.length;


//-----------------
//要移動的源文件夾
var sFolder=picPath;
var fso = new ActiveXObject("Scripting.FileSystemObject"); 

function MovePic(ff,type){
    var tmpArr=new Array();
    var tempff=ff.replace(sFolder,'');
    var folderName='',arrLast='',f1;
    //document.write(tempff+'<br>');
    tmpArr=tempff.split("\\");
    arrLast=tmpArr.pop();//文件
    for(var i in tmpArr){
        //document.write(tmpArr[i]+'<br>');
        //循環並建立文件夾
        folderName = folderName+(tmpArr[i]+"\\");
        if (fso.FolderExists(eFolder+folderName)){
                  //document.write(tmpArr[i]+'存在<br>');
        }else{
            fso.CreateFolder (eFolder+folderName);//創建文件夾
            //document.write(tmpArr[i]+'已創建<br>');    
        }
    }
    f1 = fso.GetFile(ff);
    if(type){
        f1.Move(eFolder+folderName+arrLast);//移動
    }else{
        f1.Copy(eFolder+folderName+arrLast);//複製    
    }
    //document.write(eFolder+folderName+arrLast);
}

//-------------

//隨機顯示指定數量的文件

var tempArr=getRandomArrayElements(list_result, getPicCount);
var itemstr='';
for( var i =0; i < tempArr.length; i++ ) {
 //itemstr=itemstr+'<a href="'+result[i].path+'\\'+result[i].name+'" target="_blank">'+tempArr[i].path+'\\'+tempArr[i].name+'</a>';
 itemstr=itemstr+'<a href="#">'+tempArr[i].path+'\\'+tempArr[i].name+'</a>';
 //複製或移動
 MovePic(tempArr[i].path+'\\'+tempArr[i].name,mType);
 
}
document.getElementById("suijistr").innerHTML=itemstr;
document.getElementById("getpicnum").innerHTML=getPicCount;
}

</script>
<style>
#mtable td{heidth:20px; line-height:20px;}
#picCounts {color:red;}
#suijistr a{ display:block; height:21px; line-height:21px;}
</style>
</head>
<body onload = "run()">
<a href="#gettop" style="color:red">點擊查看隨機取出的圖片</a><br /><br />
<div sytle="height:30px; background:#EEE;">統計:共遍歷到 <strong id="picCounts">0</strong> 張圖片文件</div>
  <div id ="table">
      <table id="mtable" style="font-size:12px;background:#AAA; padding:1px">
    <tbody id="mtbody">
      <tr id="mtr" style="background:#FFF;">
        <td><strong>文件路徑</strong></td>
        <td><strong>文件名(點擊可查看圖片)</strong></td>
        <!-- <td>最後修改時間</td> -->
      </tr>
    </tbody>
  </table>
  </div>


<br />
<div id="gettop" name="gettop">共隨機取出<strong><span id="getpicnum" style='color:red;'> 0 </span></strong>張圖片</div><br />
<div id="suijistr">

</div>


</body>
</html>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章