js操作IO流__js
來源:互聯網
上載者:User
一、功能實現核心:FileSystemObject對象其實,要在js中實現檔案操作功能,主要就是靠FileSystemObject對象.
二、FileSystemObject編程三部曲
使用FileSystemObject進行編輯要經過如下步驟:建立FileSystemObject對象、應用相關方法、訪問相關屬性,
(一)建立FileSystemObject對象,建立FileSystemObject對象的代碼只要1行:
var fso=new ActiveXObject("Scripting.FileSystemObject"); //執行個體化
上述代碼執行後,fso就成了一個FileSystemObject對象執行個體。
(二)應用相關方法,如建立一個文字檔:
var fso=new ActiveXObject("Scripting.FileSystemObject"); //執行個體化
var f1=fso.createtextfile("e:\\b.txt",true); //建立記事本
(三)訪問相關屬性,要訪問相關屬性,首先要建立指向對象的控制代碼,這就要通過get系列方法實現:GetDrive負責擷取磁碟機資訊,GetFile負責擷取檔案資訊. 比如,指向下面的代碼後,f2就成了指向檔案e:\\a.txt的控制代碼,並擷取屬性.
var fso=new ActiveXObject("Scripting.FileSystemObject"); //執行個體化
var f1=fso.createtextfile("e:\\b.txt",true); //建立記事本
var f2=fso.GetFile("e:\\a.txt");
alert("File last modified:"+f2.DateLastModified); //顯示最後修改時間
但有一點請注意,對於使用create方法建立的對象,就不必再使用get方法擷取物件控點了,這時直接使用create建立的控制代碼名稱就可以
var fso=new ActiveXObject("Scripting.FileSystemObject"); //執行個體化
var f1=fso.createtextfile("e:\\b.txt",true); //建立記事本
alert("File last modified:"+f1.DateLastModified); //顯示最後修改時間
三、操作磁碟機(Drives)
使用FileSystemObject對象來編程操作磁碟機(Drives)和檔案夾(Folders)很容易
(一)Drives對象屬性Drive對象負責收集系統中的物理或邏輯磁碟機資源內容,它具有如下屬性:
TotalSize:以位元組(byte)為單位計算的磁碟機大小。
FreeSpace:以位元組(byte)為單位計算的磁碟機可用空間。
DriveLetter:磁碟機字母
Drive Type:磁碟機類型, 取值為removable(移動介質)、fixed(固定介質)、netword(網路資源)、CD-ROM或者RAM盤
SerialNumber:磁碟機的系列碼
例子:
var fso=new ActiveXObject("Scripting.FileSystemObject"); //執行個體化
var drv=fso.GetDrive(fso.GetDriveName("c:\\")); //讀磁碟機
var s="";
s+="Driver C:"+"-";
s+=drv.VolumeName+"\n";
s+="Total Space:"+drv.TotalSize/1024;
s+="kb"+"\n";
s+=drv.FreeSpace/1024;
s+="Kb"+"\n";
alert(s);
四、操作檔案夾
var fldr,s="";
var fso=new ActiveXObject("Scripting.FileSystemObject"); //執行個體化
fldr=fso.GetFolder("c:\\");//擷取Diver對象
alert("parent folder name is"+fldr+"\n");//顯示父目錄名稱
alert("Contained on drive"+fldr.Drive+"\n");//顯示所在drive名稱
if(fldr.IsRootFolder)//判斷是否為根目錄
alert("this is the root folder.");
else
alert("this folder isn't a root folder.");
fso.CreateFolder("c:\\bogus");//建立新檔案
alert("create folder C:\\bogus"+"\n");
alert("Basename="+fso.GetBaseName("c:\\bogus")+"\n");//顯示檔案夾基礎名,不包含路徑名
fso.DeleteFolder("c:\\bogus");
alert("Deletedd folder c:\\bogus"+"\n");//刪除檔案夾
五、操作檔案
(一)建立檔案
var fso=new ActiveXObject("Scripting.FileSystemObject"); //執行個體化
var f1=fso.createtextfile("e:\\b.txt",true); //建立記事本
var ForWriting=2;
var ts=fso.OpenTextFile("e:\\c.txt",ForWriting,true);//建立文字檔的另一種方法
(二)讀寫資料
var fso=new ActiveXObject("Scripting.FileSystemObject"); //執行個體化
var f1=fso.createtextfile("e:\\b.txt",true); //建立記事本
f1.WriteLine("Testing 1,2,3"); //填寫一行值,帶分行符號
f1.WriteBlankLines(3);//填寫3個空行
f1.Write("this is a test");//填寫一行
f1.Close();//關閉流
var ForReading=1;
f1=fso.OpenTextFile("e:\\b.txt",ForReading);//開啟檔案
s=f1.ReadLine();//讀一行到字串s
alert(s);
六、移動,拷貝和刪除檔案
var fso=new ActiveXObject("Scripting.FileSystemObject"); //執行個體化
f1=fso.GetFile("f:\\b.txt");//讀來源目錄
f1.Copy("d:\\b.txt");//拷貝到目錄下
f1.Move("e:\\b.txt");//移動到的目錄, 移動檔案
f1.Delete();//刪除檔案