版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物標(biāo)志物與藥物不良反應(yīng)預(yù)測(cè)模型
- 生物墨水的生物安全性評(píng)價(jià)方法
- 生活質(zhì)量評(píng)估在再程放療方案選擇中的作用
- 電子商務(wù)專家認(rèn)證考試內(nèi)容解析
- 產(chǎn)品經(jīng)理面試題及產(chǎn)品思維訓(xùn)練
- 深度解析(2026)《GBT 19496-2004鉆芯檢測(cè)離心高強(qiáng)混凝土抗壓強(qiáng)度試驗(yàn)方法》
- 保潔綠化領(lǐng)班工作創(chuàng)新與問題解決方法含答案
- 電子工程師技術(shù)支持崗位的常見問題與答案
- 信息錄入員崗位面試題及答案
- 環(huán)境噪聲污染的統(tǒng)計(jì)心血管效應(yīng)與結(jié)果防護(hù)策略
- 2025年廣西繼續(xù)教育公需科目考試試題和答案
- 俄烏之戰(zhàn)課件
- 2026年鐵嶺衛(wèi)生職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)及參考答案詳解一套
- 2025年廚房燃?xì)鈭?bào)警器安裝合同
- 環(huán)孢素的臨床應(yīng)用
- 國(guó)開電大《11837行政法與行政訴訟法》期末答題庫(kù)(機(jī)考字紙考)排序版 - 稻殼閱讀器2025年12月13日12時(shí)58分54秒
- 2025河北廊坊市工會(huì)社會(huì)工作公開招聘崗位服務(wù)人員19名考試筆試備考試題及答案解析
- 2025國(guó)家電投集團(tuán)中國(guó)重燃招聘18人筆試歷年參考題庫(kù)附帶答案詳解
- 框架日常維修協(xié)議書
- 智研咨詢發(fā)布-2025年中國(guó)電子變壓器件行業(yè)市場(chǎng)運(yùn)行態(tài)勢(shì)及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 創(chuàng)傷后成長(zhǎng)(PTG)視角下敘事護(hù)理技術(shù)的臨床應(yīng)用
評(píng)論
0/150
提交評(píng)論