在java-script中實現文件操作功能主要依靠FileSystemobject。
二、文件系統對象編程
使用FileSystemObject編程非常簡單,壹般會經歷以下步驟:創建FileSystemObject、應用相關方法和訪問對象的相關屬性。
(a)創建文件系統對象
創建FileSystemObject對象的對象。
代碼只需要1行:
var FSO = new ActiveX object(“Scripting。file system object“);
執行上述代碼後,fso成為FileSystemObject實例。
相關方法的應用
創建對象實例後,可以使用該對象的相關方法。例如,使用CreateTextFile方法創建文本文件:
var FSO = new ActiveX object(“Scripting。file system object“);
var f 1 = FSO . create textfile(“c:\ \ myjstest . txt“,true);
③訪問對象的相關屬性
要訪問對象的相關屬性,我們必須首先建立對象的句柄,這是通過壹系列get方法來實現的:GetDrive負責獲取驅動器信息,GetFolder負責獲取文件夾信息,GetFile負責獲取文件信息。例如,在指向以下代碼後,f1成為文件c:\test.txt的句柄:
var FSO = new ActiveX object(“Scripting。file system object“);
var f1 = fso。GetFile(“c:\ \ myjstest . txt“);
然後,使用f1訪問對象的相關屬性。例如:
var FSO = new ActiveX object(“Scripting。file system object“);
var f1 = fso。GetFile(“c:\ \ myjstest . txt“);
alert(“文件上次修改時間:“+ f1。DateLastModified);
執行上面的最後壹句話後,將顯示c:\myjstest.txt的最後修改日期的屬性值。
但是,請註意,對於由create方法創建的對象,您不需要使用get方法來獲取對象句柄。在這種情況下,您可以直接使用由create方法創建的句柄名稱:
var FSO = new ActiveX object(“Scripting。file system object“);
var f 1 = FSO . create textfile(“c:\ \ myjstest . txt“,true);
alert(“文件上次修改時間:“+ f1。DateLastModified);
第三,驅動器(Drives)的操作
使用FileSystemObject很容易操作驅動器和文件夾,這就像在Windows文件瀏覽器中與文件進行交互壹樣,例如復制和移動文件夾以及獲取文件夾的屬性。
驅動對象屬性
驅動器對象負責收集系統中物理或邏輯驅動器資源的內容,它具有以下屬性:
L TotalSize:以字節計算的驅動器大小。
L AvailableSpace或FreeSpace:以字節計算的驅動器可用空間。
l驅動器號:驅動器號。
L DriveType:驅動器類型,值為可移動(可移動媒體)、固定(固定媒體)、網絡(網絡資源)、CD-ROM或RAM磁盤。
l序列號:驅動器的序列號。
L FileSystem:驅動器的文件系統類型,值為FAT、FAT32和NTFS。
L IsReady:驅動器是否可用。
l共享名稱:*** *享有該名稱。
L VolumeName:卷標名稱。
l路徑和根文件夾:驅動器的路徑或根目錄名稱。
②驅動對象操作程序
以下例程顯示驅動器C的卷標、總容量和可用空間:
var fso,drv,s =““;
FSO = new ActiveX object(“Scripting。file system object“);
drv = fso。get drive(FSO。get drivename(“c:\ \“));
s +=“驅動器C:“+“-“;
s += drv。VolumeName+“\ n“;
s +=“總空間:“+ drv。total size/1024;
s+=“Kb“+“\ n“;
s +=“可用空間:“+ drv。自由空間/1024;
s+=“Kb“+“\ n“;
警報;
四、操作文件夾(Folders)
涉及文件夾的操作包括創建、移動、刪除和獲取相關屬性。
文件夾對象操作例程:
下面的例程將練習獲取父文件夾的名稱、創建文件夾、刪除文件夾以及判斷是否為根目錄等操作:
var fso,fldr,s =““;
//創建FileSystemObject的實例。
FSO = new ActiveX object(“Scripting。file system object“);
//獲取驅動器對象
fldr = fso。GetFolder(“c:\ \“);
//顯示父目錄的名稱。
alert(“父文件夾名稱為:“+fldr+“\ n“);
//顯示驅動器的名稱。
alert(“包含在驅動器上“+ fldr。驅動器+“\ n“);
//確定它是否是根目錄。
如果(fldr。IsRootFolder)
alert(“這是根文件夾。”);
其他
alert(“此文件夾不是根文件夾。”);
alert(“\ n \ n“);
//創建新文件夾
fso。create folder(“C:\ \ Bogus“);
alert(“已創建文件夾C:\ \ Bogus“+“\ n“);
//顯示文件夾基本名稱,不包括路徑名稱。
alert(“Basename =“+FSO。GetBaseName(“c:\ \ bogus“+“\ n“);
//刪除創建的文件夾
fso。delete folder(“C:\ \ Bogus“);
alert(“已刪除文件夾C:\ \ Bogus“+“\ n“);
五、操作文件(檔案)
對文件的操作比上述對驅動器和文件夾的操作更復雜,這些操作基本上分為以下兩類:創建、復制、移動和刪除文件的操作以及創建、添加、刪除和讀取文件內容的操作。下面詳細介紹。
創建壹個文件
* * *有三種方法可以創建空文本文件,該文件有時稱為文本流。
第壹種是使用CreateTextFile方法。代碼如下:
var fso,f 1;
FSO = new ActiveX object(“Scripting。file system object“);
f1 = fso。create textfile(“c:\ \ test file . txt“,true);
第二種是使用OpenTextFile方法並添加ForWriting屬性,ForWriting的值為2。代碼如下:
風險值fso,ts。
var for writing = 2;
FSO = new ActiveX object(“Scripting。file system object“);
ts = fso。open textfile(“c:\ \ test . txt“,ForWriting,true);
第三個是使用OpenAsTextStream方法,並設置ForWriting屬性。代碼如下:
var fso,f1,ts
var for writing = 2;
FSO = new ActiveX object(“Scripting。file system object“);
fso。create textfile(“c:\ \ test 1 . txt“);
f1 = fso。GetFile(“c:\ \ test 1 . txt“);
ts = f1。OpenAsTextStream(for writing,true);
②向文件中添加數據
創建文件時,通常需要遵循“打開文件-》;填寫數據-》關閉文件“來達到向文件中添加數據的目的。
若要打開文件,可以使用FileSystemObject的OpenTextFile方法或File對象的OpenAsTextStream方法。
使用TextStream對象的Write、WriteLine或WriteBlankLines方法填充數據。在寫入數據的相同功能下,這三種方法的區別在於Write方法不會在寫入數據的末尾添加新的換行符,WriteLine方法會在末尾添加新的換行符,而WriteBlankLines會添加壹個或多個空行。
使用TextStream對象的Close方法關閉文件。
(3)創建文件和添加數據例程
以下代碼結合了創建文件、添加數據和關閉應用程序文件的步驟:
var fso,TF;
FSO = new ActiveX object(“Scripting。file system object“);
//創建新文件
tf = fso。create textfile(“c:\ \ test file . txt“,true);
//填寫數據並添加換行符。
tf。WriteLine(“測試1,2,3) ;
//添加3個空行
tf。WriteBlankLines(3);
//填充壹行而不換行
tf。寫(“這是壹個測試。”);
//關閉文件
tf。close();
④讀取文件的內容
若要從文本文件中讀取數據,請使用TextStream對象的Read、ReadLine或ReadAll方法。Read方法用於讀取文件中指定數量的字符;ReadLine方法讀取壹整行,但不包括換行符;ReadAll方法讀取文本文件的全部內容。讀取的內容存儲在字符串變量中以供顯示和分析。
方法或屬性描述
構建路徑()
生成文件路徑
復制文件()復制文件
復制文件夾()復制目錄
CreateFolder()創建新目錄。
CreateTextFile()生成壹個文件。
DeleteFile()刪除文件。
DeleteFolder()刪除目錄。
DriveExists()檢查驅動器號是否存在。
Drives返回驅動器號的集合。
FileExists()檢查文件是否存在。
FolderExists檢查目錄是否存在。
獲取文件的絕對路徑。
獲取文件名。
GetDrive()獲取驅動器盤符名稱。
GetDriveName()獲取驅動器號名稱。
GetExtensionName()獲取文檔的後綴。
GetFile()生成文件對象。
GetFileName()獲取文件名。
GetFolder()獲取目錄對象。
獲取文件或目錄的父目錄名。
GetSpecialFolder()獲取壹個特殊的目錄名。
GetTempName()生成壹個臨時文件對象。
MoveFile()移動文件。
MoveFolder()移動目錄。
OpenTextFile()打開文件流。
f.Files //目錄中所有文件的集合。
f .屬性//文件屬性
Case 0 Str=“普通文件。未設置任何屬性。
案例1 Str=“只讀文件。讀和寫。”
案例2 Str=“隱藏文件。讀和寫。”
案例4 Str=“系統文件。讀和寫。”
案例16 Str=“文件夾或目錄。只讀。
案例32 Str=“自上次備份以來已更改的文件。讀和寫。”
Case 1024 Str=“鏈接或快捷方式。只讀。
Case 2048 Str=“壓縮文件。只讀。
F.創建日期//創建時間
F.上次訪問日期//上次訪問時間
F.DateLastModified //上次修改時間
F.路徑//文件路徑
F.名稱//文件名
F.類型//文件類型
F.大小//文件大小(單位:字節)
F.父文件夾//父目錄
F.根文件夾//根目錄