JavaScript文件流操作資料_第1頁(yè)
JavaScript文件流操作資料_第2頁(yè)
JavaScript文件流操作資料_第3頁(yè)
JavaScript文件流操作資料_第4頁(yè)
JavaScript文件流操作資料_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

一、功能實(shí)現(xiàn)核心:FlleSystemObject對(duì)象

要在javascript中實(shí)現(xiàn)文件操作功能,主要就是依靠FileSystemobject對(duì)象,

二、FileSystemObject編欄

使用FileSystemOtject對(duì)象進(jìn)行編程很簡(jiǎn)單,一般要經(jīng)過如下的步驟:創(chuàng)建

FileSystemObject對(duì)象、應(yīng)用相關(guān)方法、訪問對(duì)象相關(guān)屬性。

(一)創(chuàng)建FileSystemObject對(duì)象

創(chuàng)建FileSystemObject對(duì)象的

代碼只要1行:

varfso=newActiveXObjectf'Scripting.FileSystemObject");

上述代碼執(zhí)行后,fso就成為一個(gè)FileSystemObject對(duì)象實(shí)例。

(二)應(yīng)用相關(guān)方法

創(chuàng)建對(duì)象實(shí)例后,就可以使用對(duì)象的相關(guān)方法了。比如,使用CreateTextFile方法創(chuàng)建一個(gè)

文本文件:

varfso=newActiveXObject("Scripting.FileSystemObject");

varf1=fso.createtextfile("c:\\myjstest.txt",true");

(三)訪問對(duì)象相關(guān)屬性

要訪問對(duì)象的相關(guān)屬性,首先要建立指向?qū)ο蟮木浔?,這就要通過get系列方法實(shí)現(xiàn):

GetDrive負(fù)責(zé)獲取驅(qū)動(dòng)器信息,GetFolder負(fù)責(zé)獲取文件夾信息,GetFile負(fù)責(zé)獲取文件信息。

比如,指向下面的代碼后,f1就成為指向文件c:\test.txt的句柄:

varfso=newActiveXObject("Scripting.FileSystemObject");

varfl=fso.GetFile("c:\\myjstest.txt");

然后,使用f1訪問對(duì)象的相關(guān)屬性。比如:

varfso=newActiveXObject("Scripting.FileSystemObject");

varfl=fso.GetFile("c:\\myjstest.txt");

alert("Filelastmodified:"+f1.DateLastModified);

執(zhí)行上面最后?句后,將顯示c:\myjstest.txt的最后修改Fl期屬性值。

但有一點(diǎn)請(qǐng)注意:對(duì)于使用create方法建立的對(duì)象,就穴必再使用get方法獲取對(duì)象句柄了,

這時(shí)直接使用create方法建立的句柄名稱就可以:

varfso=newActiveXObject("Scripting.FileSystemObject");

varfl=fso.createtextfile("c:\\myjstest.txt",true");

alert("Filelastmodified:"+fl.DateLastModified);

三、操作驅(qū)動(dòng)器(Drives)

使用FileSystemObject對(duì)象來編程操作驅(qū)動(dòng)器(Drives)和文件夾(Folders)很容易,這就

象在Windows文件瀏覽器中對(duì)文件進(jìn)行交互操作一樣,比如:拷貝、挪移文件夾,獲取文

件夾的屬性,

(一)Drives對(duì)象屬性

Drive對(duì)象負(fù)責(zé)采集系統(tǒng)中的物理或者邏輯驅(qū)動(dòng)器資源自容,它具有如下屬性:

ITotalSize:以字節(jié)(byte)為單位計(jì)算的驅(qū)動(dòng)器大小。

IAvailableSpace或者FreeSpace:以字節(jié)(byte)為單位計(jì)算的驅(qū)動(dòng)器可用空間。

IDriveLetter:驅(qū)動(dòng)器字母。

IDriveType:驅(qū)動(dòng)器類型,取值為:removable(挪移介質(zhì))、fixed(固定介質(zhì))、network(R

絡(luò)資源)、CD-ROM或者RAM盤。

ISerialNumber:驅(qū)動(dòng)器的系列碼。

IFileSystem:所在驅(qū)動(dòng)器的文件系統(tǒng)類型,取值為FAT、FAT32和NTFS。

IisReady:驅(qū)動(dòng)器是否可用。

IShareName:共享名稱。

IVolumeName:卷標(biāo)名稱.

IPath和RootFolde門驅(qū)動(dòng)器的路徑或者根目錄名稱。

(二)Drive對(duì)象操作例程

卜.面的例程顯示驅(qū)動(dòng)器C的卷標(biāo)、總?cè)萘亢涂捎每臻g等信息:

varfso,drv,s

fso=newActiveXObjectf'Scripting.FileSystemObjecC);

drv=fso.GetDrive(fso.GetDriveName("c:\\"));

s+="DriveC:"+"-M;

s+=drv.VolumeName+'Yi";

s+="TotalSpace:"+drv.TotalSize/1024;

s+="Kb"+"\n";

s+="FreeSpace:"+drv.FreeSpace/1024;

s+=*'Kb"+"\n";

alert(s);

四、操作文件夾(Folders)

涉及到文件夾的操作包括創(chuàng)建、挪移、刪除以及獲取相關(guān)屬性。

Folder對(duì)象操作例程:

下面的例程將練習(xí)獲取父文件夾名稱、創(chuàng)建文件夾、刪除文件夾、判斷是否為根目錄等操作:

varfso,fldr,s=

〃創(chuàng)建FileSystemObject對(duì)象實(shí)例

fso=newActiveXObject("Scripting.FileSystemObject");

〃獲取Drive對(duì)象

fldr=fso.GetFolderC'ciW");

〃顯示父目錄名稱

alert("Parentfoldernameis:"+fldr+"\n");

//顯示所在drive名稱

alert("Containedondrive"+fldr.Drive+"\n");

〃判斷是否為根目錄

if(fldr.lsRootFolder)

alertf'Thisistherootfolder.");

else

alert("Thisfolderisn'tarootfolder.");

alert("\n\nM);

//創(chuàng)建新文件夾

fso.CreateFolder("C:\\Bogus");

alert("CreatedfolderC:\\Bogus"+"\n");

〃顯示文件夾基礎(chǔ)名稱,不包含路徑名

alertf'Basename="+fso.GetBaseName("c:\\bogus")+'Yi");

//刪除創(chuàng)建的文件夾

fso.DeleteFolder("C:\\Bogus");

alertf'DeletedfolderC:\\Bogus"+"\n");

五、操作文件(Files)

2/8

對(duì)文件進(jìn)行的操作要比以上介紹的驅(qū)動(dòng)器(Drive)和文件夾(bolder)操作復(fù)雜些,基本上

分為以下兩個(gè)類別:對(duì)文件的創(chuàng)建、拷貝、挪移、刪除操作和對(duì)文件內(nèi)容的創(chuàng)建、添加、刪

除和讀取操作。下面分別詳細(xì)介紹。

(一)創(chuàng)建文件

一共有3種方法可用于創(chuàng)建一個(gè)空文本文件,這種文件有時(shí)候也叫做文本流(textstream).

第一種是使用CreateTextFile方法。代碼如下:

varfso,f1;

fso=newActiveXObject("Scripting.FileSystemObject");

f1=fso.CreateTextFileC'cAUestfile.txr,true);

第二種是使用OpenTextFile方法,并添加之ForWriting屬性,F(xiàn)orWriting的值為2。代碼如

下:

varfso,ts;

varForWriting=2;

fso=newActiveXObject("Scripting.FileSystemObject");

ts=fso.OpenTextFile("c:\\test.txr,ForWriting,true);

第三種是使用OpenAsTextStream方法,同樣要設(shè)置好ForWriting屬性。代碼如下:

varfso,f1,ts;

varForWriting=2;

fso=newActiveXObject("Scripting.FileSystemObject");

fso.CreateTextFile("c:\\test1.txt");

f1=fso.GetFile("c:\\test1.txt");

ts=f1.OpenAsTextStream(ForWriting,true);

(二)添加數(shù)據(jù)到文件

當(dāng)文件被創(chuàng)建后,普通要按照“打開文件一》填寫數(shù)據(jù)一〉關(guān)閉文件''的步驟實(shí)現(xiàn)添加數(shù)據(jù)到文

件的目的。

打開文件可使用FileSystemObject對(duì)象的OpenTex舊Ie方法,或者使用File對(duì)象的

OpenAsTextStream方法。

填寫數(shù)據(jù)要使用到Textstream對(duì)象的WriteWriteLine或者WriteBlankLines方法。在同是

實(shí)現(xiàn)寫入數(shù)據(jù)的功能下,這3者的區(qū)別在于:Write方法不在寫入數(shù)據(jù)末尾添加新?lián)Q行符,

WriteLine方法要在最后添加一個(gè)新?lián)Q行符,而WriteBlankLines則增加一個(gè)或者多個(gè)空行。

關(guān)閉文件可使用TextStream對(duì)象的Close方法。

(三)創(chuàng)建文件及添加數(shù)據(jù)例程

卜.面的代碼將創(chuàng)建文件、添加數(shù)據(jù)、關(guān)閉文件幾個(gè)步驟結(jié)合起來進(jìn)行應(yīng)用:

varfso,tf;

fso=newActiveXObject("Scripting.FileSystemObject");

//創(chuàng)建新文件

tf=fso.CreateTextFile("c:\\testfile.txr,true);

〃填寫數(shù)據(jù),并增加換行符

tf.WriteLineC'Testing1,2,3.");

//增加3個(gè)空行

tf.WriteBlankLines(3);

〃填寫一行,不帶換行符

tf.Write("Thisisatest.");

〃關(guān)閉文件

3/8

tf.Close();

(四)讀取文件內(nèi)容

從文本文件中讀取數(shù)據(jù)要使用Textstream對(duì)象的Read、ReadLine或者ReadAII方法。Read

方法用于讀取文件中指定數(shù)量的字符;ReadUne方法讀取一整行,但不包括換行符;

ReadAII方法則讀取文本文件的整個(gè)內(nèi)容。讀取的內(nèi)容存放于字符串變量中,用于顯示、分

析。

方法或者屬性描述

BuildPath()

生成一個(gè)文件路徑

CopyFile()復(fù)制文件

CopyFolder()復(fù)制目錄

CreateFolder()創(chuàng)建新目錄

CreateTextFile()生成一個(gè)文件

DeleteFile()刪除一個(gè)文件

DeleteFolder()刪除一個(gè)目錄

DriveExists()檢驗(yàn)盤符是否存在

Drives返回盤符的集合

FileExistsf)檢驗(yàn)文件是否存在

FolderExists檢驗(yàn)一個(gè)目我是否存在

GetAbsolutePathNamef)取得一個(gè)文件的絕對(duì)路徑

GetBaseName()取得文件名

GetDrive()取得盤符名

GetDriveName()取得盤符名

GetExtensionName()取得文件的后綴

GetFile()生成文件對(duì)象

GetFileNameQ取得文件名

GetFolder()取得Fl錄對(duì)象

GetParentFolderName取得文件或者目錄的父目錄名

GetSpecialFolder()取得特殊的目錄名

GetTempName()生成一個(gè)暫時(shí)文件對(duì)象

MoveFilef)挪移文件

MoveFolder()挪移目錄

OpenTextFile()打開一個(gè)文件流

〔Files〃目錄下所有文件集合

[attributes//文件屬性

Case0Str="普通文件。沒有設(shè)置任何屬性。"

CaselStr="只讀文件。可讀寫?!?/p>

Case2Str="隱藏文件??勺x寫。"

Case4Str="系統(tǒng)文件。可讀寫。"

Case16Str="文件夾或者H錄。只讀。"

Case32Str="上次備份后已更改的文件??勺x寫。"

Case1024Str」鏈接或者快捷方式。只讀。"

Case2048Str』'壓縮文件。只讀。"

4/8

f.Datecreated//創(chuàng)建時(shí)間

f.DateLastAccessed〃上次訪問時(shí)間

f.DateLastModified//上次修改時(shí)間

f.Path〃文件路徑

f.Name〃文件名稱

f.Type〃文件類型

f.Size〃文件大小(單位:字節(jié))

f.ParentFolder〃父目錄

f.RootFolder//根目錄

實(shí)例說明

BuildPath(路徑,文件名)〃這個(gè)方法會(huì)對(duì)給定的路徑加之文件,并自動(dòng)加之分界符

<SCRIPTLANGUAGE="JavaScript">

<!-

varfso=newActiveXObjectf'Scripting.FileSystemObject");

varnewpath=fso.BuildPath("c:\Mmp","51js.txt");〃生成c:\tmp\51js.txt的路徑

alert(newpath);

->

</SCRIPT>

CopyFile(源文件,目標(biāo)文件,覆蓋)〃及制源文件到目標(biāo)又件,當(dāng)覆蓋值為true時(shí),如果目標(biāo)

文件存在會(huì)把文件覆蓋

<SCRIPTLANGUAGE="JavaScript">

<!"

varfso=newActiveXObjectf'Scripting.FileSystemObject");

varnewpath=fso.CopyFile("c:\\autoexec.bat","d:\\autoexec.bak");

->

</SCRIPT>

CopyFolder(對(duì)象目錄,目標(biāo)目錄,覆蓋)〃復(fù)制對(duì)象目錄到目標(biāo)目錄,當(dāng)覆蓋為true時(shí),如果

目標(biāo)目錄存在會(huì)把文件覆蓋

<SCRIPTLANGUAGE="JavaScript">

<!-

varfso=newActiveXObject("Scripting.FileSystemObject");

fso.CopyFolder(Hc:\\WINDOWS\\Desktop",'?dzW");Z/JEC盤的Desktop目錄復(fù)制到D盤的根目

—>

</SCRIPT>

CreateFolder?(目錄名)//創(chuàng)建一個(gè)新的目錄

<SCRIPTLANGUAGE="JavaScript">

<!-

varfso=newActiveXObject("Scripting.FileSystemObject");

varnewFolderName=fso.CreateFolder("c:\\51JS");//在C盤上創(chuàng)建一個(gè)51JS的目錄

—>

</SCRIPT>

CreateTextFile(文件名,覆蓋)〃創(chuàng)建一個(gè)新的文件,如果此文件已經(jīng)存在,你需要把覆蓋值

定為true

5/8

<SCRIPTLANGUAGE="JavaScripr>

<!"

varfso=newActiveXObjectf'Scripting.FileSystemObject");

varnewFileObject=fso.CreateTextFile("c:\\autoexec51JS.bat",true);//腳本將在C盤創(chuàng)建一個(gè)

叫autoexec51JS.bat的文件

</SCRIPT>

DeleteFile(文件名,只讀?)〃刪除一個(gè)文件,如果文件的屬性是只讀的話,你需要把只讀值

設(shè)為true

<SCRIPTLANGUAGE="JavaScript">

<!-

varfso=newActiveXObject("Scripting.FileSystemObject");〃為/安全我先把要?jiǎng)h除的

autoexec.bat備份到你的D盤

varnewpath=fso.CopyFile("c:\\autoexec.bat","d:\\autoexec.bat");〃把C盤的autoexec.bat文件

刪除掉

fso.DeleteFile("c:\\autoexec.bat",true);

</SCRIPT>

DeleteFolder(文件名,只讀?)〃刪除一個(gè)目錄,如果目錄的屬性是只讀的話,你需要把只讀

值設(shè)為true

<SCRIPTLANGUAGE="JavaScripf>

<!"

varfso=newActiveXObjectf'Scripting.FileSystemObject");

fso.CopyFolder("c:\\WINDOWS\\Desktop","d:\\");〃為了安全我先把你C盤的Desktop目錄復(fù)

制到你D盤的根目錄

fso.DeleteFolder("c:\\WINDOWS\\Desktop",true);〃把你的Desktop目錄刪除,但因?yàn)閐esktop

是系統(tǒng)的東西,所以不能全部刪除,但....

->

</SCRIPT>

DriveExists(盤符)〃檢查一個(gè)盤是否存在,如果存在就返會(huì)真,不存在就返回…….

<SCRIPTLANGUAGE="JavaScript">

<!"

varfso=newActiveXObject("Scripting.FileSystemObject");

hasDriveD=fso.DriveExists("d");//檢查系統(tǒng)是否有D盤存在

hasDriveZ=fso.DriveExists("z");〃檢查系統(tǒng)是否有Z盤存在

if(hasDriveD)alert("你的系統(tǒng)內(nèi)有一個(gè)D盤)

if(IhasDriveZ)alert("你的系統(tǒng)內(nèi)沒有Z盤,);

->

</SCRIPT>

FileExists(文件名)〃檢查一個(gè)文件是否存在,如果存在就返會(huì)真,不存在就返回…….

<SCRIPTLANGUAGE="JavaScripr>

<!"

varfso=newActiveXObject("Scripting.FileSystemObject");

fileName=fso.FileExists("c:\\autoexec.bat");

6/8

if(fileName)alert("你在.C盤中有autoexec.bat文件,按下確定后這個(gè)文件將被刪除!〃開

個(gè)玩笑:)

->

</SCRIPT>

FolderExists(目錄名)〃檢查一個(gè)目錄是否存在,如果存在就返會(huì)真,不存在就返網(wǎng)….…

<SCRIPTLANGUAGE="JavaScripr>

<!"

varfso=newActiveXObject("Scripting.FileSystemObject");

folderName=fso.FolderExistsf'czWWINDOWS\\FontsM);

if(folderName)alert("按卜確定后系統(tǒng)的字庫(kù)將被刪除!");〃開個(gè)玩笑:)

-->

</SCRIPT>

GetAbsolutePathName(文件對(duì)象)〃返回文件對(duì)象在系統(tǒng)E勺絕對(duì)路徑

<SCRIPTLANGUAGE="JavaScript">

<!—

varfso=newActiveXObjectf'Scripting.FileSystemObject*');

pathName=fso.GetAbsolutePathNamef'cAVautoexec.bat");

alert(pathName);

—>

</SCRIPT>

GetBaseName(文件對(duì)象)//返回文件對(duì)象的文件名

<SCRIPTLANGUAGE="JavaScript">

<!-

varfso=newActiveXObjectf'Scripting.FileSystemObject");

baseName=fso.GetBaseName("c:\\autoexec.bat");沖得autoexec.bat的文件名autoexec

alert(baseName);

->

</SCRIPT>

GetExtensionName(文件對(duì)象)〃文件的后綴

<SCRIPTLANGUAGE="JavaScript">

<!"

varfso=newActiveXObjectf'Scripting.FileSystemObject");

exName=fso.GetExtensionName("c:\\autoexec.bat");〃取得autoexec.bat后綴bat

alert(exName);

—>

</SCRIPT>

GetParentFolderName(文件對(duì)象)//取得父級(jí)的目錄名

<SCRIPTLANGUAGE="JavaScript">

<!-

varfso=newActiveXObject(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論