當前位置:成語大全網 - 書法字典 - 如何用JS獲取本地文件夾的文件列表

如何用JS獲取本地文件夾的文件列表

壹、功能實現的核心:FileSystemObject。

在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.根文件夾//根目錄