还剩6页未读,继续阅读
文本内容:
一、功能实现核心对象FileSystemObject要在中实现文件操作功能,主要就是依靠对象javascript FileSystemobject
二、编程FileSystemObject使用对象进行编程很简单,一般要经过如下的步骤创建HleSystemObject FileSystemObject对象、应用相关方法、访问对象相关属性一仓建对象II FileSystemObject创建对象的FileSystemObject代码只要行1;var fso=new ActiveXObjectScripting.FileSystemObject”上述代码执行后,就成为一个对象实例fso FileSystemObject二应用相关方法创建对象实例后,就可以使用对象的相关方法了比如,使用方法创建一个文本CreateTextFile文件var fso=new ActiveXObjectHScripting.FileSystemObjectn;var f1=fso.createtextfile,c:\\myjstest.txt,,,true,;三访问对象相关属性要访问对象的相关属性,首先要建立指向对象的句柄,这就要通过系列方法实现get GetDrive负责获取驱动器信息,负责获取文件夹信息,负责获取文件信息比如,指向GetFolder GetFile下面的代码后,就成为指向文件的句柄f1c:\test.txtvar fso=new ActiveXObjectnScripting.FileSystemObjecr;var f1=fso.GetFileHc:\\myjstest.txtn;然后,使用访问对象的相关属性比如f1var fso=new ActiveXObject,Scripting.FileSystemObjectH;var f1=fso.GetFile,,c:\\myjstest.txtn;alertTile lastmodified:+f
1.DateLastModified;执行上面最后一句后,将显示的最后修改日期属性值c:\myjstest.txt但有一点请注意对于使用方法建立的对象,就不必再使用方法获取对象句柄了,这create get时直接使用方法建立的句柄名称就可以createvar fso=new ActiveXObjectHScripting.FileSystemObject1;var f1=fso.createtextfile,,c:\\myjstest.txt,,,truen;alertfFile lastmodified:+fl.DateLastModified;
三、操作驱动器Drives使用对象来编程操作驱动器和文件夹很容易,这就象在FileSystemObject DrivesFolders文件浏览器中对文件进行交互操作一样,比如拷贝、挪移文件夹,获取文件夹的属Windows性一对象属性Drives对象负责采集系统中的物理或者逻辑驱动器资源内容,它具有如下属性Drive以字节为单位计算的驱动器大小I TotalSizebyte或者以字节为单位计算的驱动器可用空间I AvailableSpaceFreeSpace byte驱动器字母I DriveLetter驱动器类型,取值为挪移介质、固定介质、网络资I DriveTyperemovable fixednetwork源、或者盘CD-ROM RAM驱动器的系列码I SerialNumber所在驱动器的文件系统类型,取值为、和I FileSystemFAT FAT32NTFS驱动器是否可用I IsReady共享名称I ShareName卷标名称I VolumeName和门驱动器的路径或者根目录名称I PathRootFolde二对象操作例程Drive下面的例程显示驱动器的卷标、总容量和可用空间等信息Cvar fso,drv,s=,m;fso=new ActiveXObject,Scripting.FileSystemObjectM;;drv=fso.GetDrivefso.GetDriveNameHc:\\Hs+=Drive C:+”・;s+=drv.VolumeName+”\n”;s+=Total Space:”+drv.TotalSize/1024;s+=Kb”+An;s+=Tree Space:+drv.FreeSpace/1024;;s+=Kb”+”\n“alerts;
四、操作文件夹Folders涉及到文件夹的操作包括创建、挪移、删除以及获取相关属性对象操作例程Folder下面的例程将练习获取父文件夹名称、创建文件夹、删除文件夹、判断是否为根目录等操作:var fso,fldr,s=〃创建对象实例FileSystemObjectfso=new ActiveXObjectScripting.FileSystemObject;〃获取对象Drivefldr=fso.GetFoldernc:\V;//显示父目录名称;alertTarent foldername is:”+fldr+“\n//显示所在名称drive;alertContainecl ondrive+fldr.Drive+“\n//判断是否为根目录if fldr.lsRootFolderalertThis isthe root folder/;elsealertnThis folderisn*t arootfolder.;alertn\n\nH;//创建新文件夹;fso.CreateFolder C:\\Bogus”alertHCreated folderC:\\Bogus+H\nH;〃显示文件夹基础名称,不包含路径名alertBasename=+fso.GetBaseName,c:\\bogusn+“\rT;//删除创建的文件夹fso.DeleteFolder,C:\\Bogusn;;alertHDeleted folderC:\\BogusH+“\n
五、操作文件Files对文件进行的操作要比以上介绍的驱动器和文件夹操作复杂些,基本上分为以下Drive Folder两个类别对文件的创建、拷贝、挪移、删除操作和对文件内容的创建、添加、删除和读取操作下面分别详细介绍一创建文件一共有种方法可用于创建一个空文本文件,这种文件有时候也叫做文本流3text stream第一种是使用方法代码如下CreateTextFilevar fso,f1;fso=new ActiveXObjectnScripting.FileSystemObjectH;f1=fso.CreateTextFileHc:\\testfile.txr true;5第二种是使用方法,并添加之属性,的值为代码如下OpenTextFile ForWHtingForWriting2var fso,ts;var ForWriting=2;fso=new ActiveXObjectCScripting.FileSystemObjecr;ts=fso.OpenTextFilenc:\\test.txtn,ForWriting,true;第三种是使用方法,同样要设置好属性代码如下OpenAsTextStream ForWHtingvar fso,f1,ts;var ForWriting=2;fso=new ActiveXObject,,Scripting.FileSystemObjectH;fso.CreateTextFile Hc:\\test
1.txtM;f1=fso.GetFilec:\\test
1.txtn;ts=f
1.OpenAsTextStreamForWriting,true;二添加数据到文件当文件被创建后,普通要按照“打开文件一>填写数据一>关闭文件”的步骤实现添加数据到文件的目的打开文件可使用对象的方法,或者使用对象的FileSystemObject OpenTextFileFile OpenAsT方法extStream填写数据要使用到对象的>或者方法在同是实现Textstream WriteWriteLine WHteBlankLines写入数据的功能下,这者的区别在于方法不在写入数据末尾添加新换行符,3WHte WriteLine方法要在最后添加一个新换行符,则增加一个或者多个空行MWriteBlankLines关闭文件可使用对象的方法Textstream Close三创建文件及添加数据例程下面的代码将创建文件、添加数据、关闭文件几个步骤结合起来进行应用var fso,tf;fso=new ActiveXObjectScripting.FileSystemObject;//创建新文件tf=fso.CreateTextFileMc:\\testfile.txtn,true;〃填写数据,并增加换行符tf.WriteLineMTesting1,2,
3.H;//增加个空行3tf.WriteBlankLines3;〃填写一行,不带换行符tf.Write Thisis atest/;〃关闭文件tf.Close;四读取文件内容从文本文件中读取数据要使用对象的、或者方法方法Textstream ReadReadLine ReadAIIRead用于读取文件中指定数量的字符;方法读取一整行,但不包括换行符;方法则ReadLine ReadAII读取文本文件的整个内容读取的内容存放于字符串变量中,用于显示、分析方法或者属性描述BuildPath生成一个文件路径复制文件CopyFile复制目录CopyFolder创建新目录CreateFolder生成一个文件CreateTextFile删除一个文件DeleteFile删除一个目录DeleteFolder检验盘符是否存在DriveExists返回盘符的集合Drives检验文件是否存在FileExists检验一个目录是否存在FolderExists取得一个文件的绝对路径GetAbsolutePathName取得文件名GetBaseName取得盘符名GetDrive取得盘符名GetDriveName取得文件的后缀GetExtensionName生成文件对象GetFile取得文件名GetFileName取得目录对象GetFolder取得文件或者目录的父目录名GetParentFolderName取得特殊的目录名GetSpecialFolder生成一个暂时文件对象GetTempName挪移文件MoveFile挪移目录MoveFolder打开一个文件流OpenTextFile「目录下所有文件集合Files//〃文件属性f.attributes普通文件没有设置任何属性”Case0Str=只读文件可读写Casel Str=隐藏文件可读写Case2Str=系统文件可读写”Case4Str=”』文件夹或者目录只读”Case16Str上次备份后已更改的文件可读写”Case32Str=”链接或者快捷方式只读”Case1024Str=压缩文件只读”Case2048Str=创建时间f.Datecreated//〃上次访问时间上次修改时间〃文件路径f.DateLastAccessed f.DateLastModified//f.Path文件名称f.Name//〃文件类型f.Type〃文件大小单位:字节f.Size/父目录f.ParentFolder/〃根目录f.RootFolder实例说明路径,文件名〃这个方法会对给定的路径加之文件,并自动加之分界符BuildPathSCRIPT LANGUAGE=nJavaScriptH!—var fso=new ActiveXObjectHScripting.FileSystemObjectn;var newpath=fso.BuildPath,c:\\tmpH,n51js.txtn;〃生成c:\tmp\51js.txt的路径alertnewpath;/SCRIPT源文件,目标文件,覆盖〃复制源文件到目标文件,当覆盖值为时,如果目标文CopyFile true件存在会把文件覆盖SCRIPT LANGUAGE=HJavaScriptH!—var fso=new ActiveXObject,,Scripting.FileSystemObject,;,;var newpath=fso.CopyFilec:\\autoexec.bat d:\\autoexec.bak/SCRIPT对象目录,目标目录履盖〃复制对象目录到目标目录,当覆盖为时,如果目CopyFolder true标目录存在会把文件覆盖SCRIPT LANGUAGE=,JavaScriptM!—var fso=new ActiveXObjectMScripting.FileSystemObjectu;丁〃把盘的目录复制到盘的根目录fso.CopyFolder”c:\\WINDOWS\\Desktop d:\\;C DesktopD—/SCRIPT目录名〃创建一个新的目录CreateFolderSCRIPT LANGUAGE=,,JavaScript,,!--var fso=new ActiveXObjectHScripting.FileSystemObjectn;〃在盘上创建一个的目录varnewFolderName=fso.CreateFolderc:\\51JS;C51JS/SCRIPT文件名,覆盖〃创建一个新的文件,如果此文件已经存在,你需要把覆盖值定CreateTextFile为trueSCRIPT LANGUAGE=,JavaScriptM!--var fso=new ActiveXObjectHScripting.FileSystemObjectn;〃脚本将在盘创建一个叫var newFileObject=fso.CreateTextFilec:\\autoexec51JS.bat,true;C的文件autoexec51JS.bat-/SCRIPT文件名,只读?〃删除一个文件,如果文件的属性是只读的话,你需要把只读值设DeleteFile为trueSCRIPT LANGUAGE=HJavaScriptn!--〃为了安全我先把要删除的var fso=new ActiveXObjectScripting.FileSystemObject;autoexec.bat备份到你的盘D〃把盘的文件删var newpath=fso.CopyFilec:\\autoexec.bat,d:\\autoexec.bat;C autoexec.bat除掉fso.DeleteFileCc^autoexec.bat,true;/SCRIPT文件名,只读?〃删除一个目录,如果目录的属性是只读的话,你需要把只读值DeleteFolder设为trueSCRIPT LANGUAGE—JavaScript”,!—var fso=new ActiveXObjectHScripting.FileSystemObjectM;〃为了安全我先把你盘的目录复制到fso.CopyFolderc:\\WINDOWS\\Desktop-d:\\;C Desktop你盘的根目录D〃把你的目录删除,但因为是fso.DeleteFolder”c:\\WINDOWS\\Desktop”,true;Desktop desktop系统的东西,所以不能全部删除,但—/SCRIPT盘符〃检查一个盘是否存在,如果存在就返会真,不存在就返回……DriveExistsSCRIPT LANGUAGE=,,JavaScript,,!—var fso=new ActiveXObject,,Scripting.FileSystemObject,;〃检查系统是否有盘存在hasDriveD=fso.DriveExistscT;D〃检查系统是否有盘存在hasDriveZ=fso.DriveExistsz;Z你的系统内有一个盘if hasDriveDalert D你的系统内没有盘if ihasDriveZalert Z—/SCRIPT文件名〃检查一个文件是否存在,如果存在就返会真,不存在就返回…•…FileExistsSCRIPT LANGUAGE^JavaScripfS!--var fso=new ActiveXObjectMScripting.FileSystemObjectn;fileName=fso.FileExistsCc^autoexec.bar;你在盘中有文件,按下确定后这个文件将被删除!;//开个if fileNamealert Cautoexec.bat玩笑-/SCRIPT目录名〃检查一个目录是否存在,如果存在就返会真,不存在就返回….…FolderExistsSCRIPT LANGUAGE=HJavaScriptn!—var fso=new ActiveXObjectHScripting.FileSystemObjectn;folderName=fso.FolderExists,,c:\\WINDOWS\\Fontsn;按下确定后系统的字库将被删除!;〃开个玩笑:if folderNamealert-/SCRIPT文件对象〃返回文件对象在系统的绝对路径GetAbsolutePathNameSCRIPT LANGUAGE=,JavaScriptM!—var fso=new ActiveXObjectnScripting.FileSystemObjectM;pathName=fso.GetAbsolutePathName,,c:\\autoexec.batH;alertpathName;/SCRIPT文件对象〃返回文件对象的文件名GetBaseNameSCRIPT LANGUAGE^JavaScripfS var fso=new ActiveXObjectHScripting.FileSystemObjectn;baseName=fso.GetBaseNamenc:\\autoexec.batn;/MW autoexec.bat的文件名autoexecalertbaseName;—/SCRIPT文件对象〃文件的后缀GetExtensionNameSCRIPT LANGUAGE—JavaScript”,!—var fso=new ActiveXObjectHScripting.FileSystemObjectn;exName=fso.GetExtensionNameHc:\\autoexec.bat;//取得autoexec.bat后缀bat alertexName;—/SCRIPT文件对象〃取得父级的目录名GetParentFolderNameSCRIPT LANGUAGE=HJavaScriptH var fso=new ActiveXObjectCScripting.FileSystemObjecf;取得的父级目录盘parentName=fso.GetParentFolderNamec:\\autoexec.bat;//autoexec.bat CalertparentName;/SCRIPT目录代码〃取得系统中一些特殊的目录的路径,目录代码有个分别是安GetSpecialFolder30:装的目录系统文件目录暂时文件目录Window1:2:SCRIPT LANGUAGE=HJavaScripr!--varfso=new ActiveXObjectHScripting.FileSystemObjectn;取得系统临时文件目录的路径如我的是tmpFolder=fso.GetSpecialFolder2;//C:\windows\tempalerttmpFolder;/SCRIPT〃生成一个随机的暂时文件对象,会以带头后面跟着些随机数,就好象一GetTempName rad些软件在安装时会生成*.tmpSCRIPT LANGUAGE=nJavaScripr!—varfso=new ActiveX0bjectHScripting.FileSystem0bject,;我在测试时就生成为了tmpName=fso.GetTempName;//radDB70E.tmp alerttmpName;/SCRIPT源文件,目标文件〃把源文件移到目标文件的位置MoveFileSCRIPT LANGUAGE=nJavaScripr!—varfso=new ActiveXObjectHScripting.FileSystemObject;var newpath=fso.MoveFilenc:\\autoexec.bat,d^autoexec.baf;〃把C盘的autoexec.bat文件移挪移到盘D/SCRIPT。