<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[JS文件使用大全]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Fri, 10 Dec 2010 13:01:49 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	<br/>JS文件使用大全(2009-03-27 18:02:37)<br/>标签：it <br/>分类：js<br/>功能实现核心：FileSystemObject 对象<br/>要在javascript中实现文件操作功能，主要就是依靠FileSystemobject对象。<br/>二、FileSystemObject编程<br/>使用FileSystemObject 对象进行编程很简单，一般要经过如下的步骤：创建FileSystemObject对象、应用相关方法、访问对象相关属性 。<br/>（一）创建FileSystemObject对象<br/>创建FileSystemObject对象的<br/>代码只要1行：<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>上述代码执行后，fso就成为一个FileSystemObject对象实例。<br/>（二）应用相关方法<br/>创建对象实例后，就可以使用对象的相关方法了。比如，使用CreateTextFile方法创建一个文本文件：<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>var f1 = fso.createtextfile(&quot;c:&#92;&#92;myjstest.txt&quot;,true&quot;);<br/>（三）访问对象相关属性<br/>要访问对象的相关属性，首先要建立指向对象的句柄，这就要通过get系列方法实现：GetDrive负责获取驱动器信息，GetFolder负责获取文件夹信息，GetFile负责获取文件信息。比如，指向下面的代码后，f1就成为指向文件c:&#92;test.txt的句柄：<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>var f1 = fso.GetFile(&quot;c:&#92;&#92;myjstest.txt&quot;);<br/>然后，使用f1访问对象的相关属性。比如：<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>var f1 = fso.GetFile(&quot;c:&#92;&#92;myjstest.txt&quot;);<br/>alert(&quot;File last modified: &quot; + f1.DateLastModified);<br/>执行上面最后一句后，将显示c:&#92;myjstest.txt的最后修改日期属性值。<br/>但有一点请注意：对于使用create方法建立的对象，就不必再使用get方法获取对象句柄了，这时直接使用create方法建立的句柄名称就可以：<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>var f1 = fso.createtextfile(&quot;c:&#92;&#92;myjstest.txt&quot;,true&quot;);<br/>alert(&quot;File last modified: &quot; + f1.DateLastModified);<br/>三、操作驱动器（Drives）<br/>使用FileSystemObject对象来编程操作驱动器（Drives）和文件夹（Folders）很容易，这就象在Windows文件浏览器中对文件进行交互操作一样，比如：拷贝、移动文件夹，获取文件夹的属性。<br/>（一）Drives对象属性<br/>Drive对象负责收集系统中的物理或逻辑驱动器资源内容，它具有如下属性：<br/>l TotalSize：以字节（byte）为单位计算的驱动器大小。<br/>l AvailableSpace或FreeSpace：以字节（byte）为单位计算的驱动器可用空间。<br/>l DriveLetter：驱动器字母。<br/>l DriveType：驱动器类型，取值为：removable（移动介质）、fixed（固定介质）、network（网络资源）、CD-ROM或者RAM盘。<br/>l SerialNumber：驱动器的系列码。<br/>l FileSystem：所在驱动器的文件系统类型，取值为FAT、FAT32和NTFS。<br/>l IsReady：驱动器是否可用。<br/>l ShareName：共享名称。<br/>l VolumeName：卷标名称。<br/>l Path和RootFolder：驱动器的路径或者根目录名称。<br/>（二）Drive对象操作例程<br/>下面的例程显示驱动器C的卷标、总容量和可用空间等信息：<br/>var fso, drv, s =&quot;&quot;;<br/>fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>drv = fso.GetDrive(fso.GetDriveName(&quot;c:&#92;&#92;&quot;));<br/>s += &quot;Drive C:&quot; + &quot; - &quot;;<br/>s += drv.VolumeName + &quot;&#92;n&quot;;<br/>s += &quot;Total Space: &quot; + drv.TotalSize / 1024;<br/>s += &quot; Kb&quot; + &quot;&#92;n&quot;;<br/>s += &quot;Free Space: &quot; + drv.FreeSpace / 1024;<br/>s += &quot; Kb&quot; + &quot;&#92;n&quot;;<br/>alert(s);<br/>四、操作文件夹（Folders）<br/>涉及到文件夹的操作包括创建、移动、删除以及获取相关属性。<br/>Folder对象操作例程 :<br/>下面的例程将练习获取父文件夹名称、创建文件夹、删除文件夹、判断是否为根目录等操作：<br/>var fso, fldr, s = &quot;&quot;;<br/>// 创建FileSystemObject对象实例<br/>fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>// 获取Drive 对象<br/>fldr = fso.GetFolder(&quot;c:&#92;&#92;&quot;);<br/>// 显示父目录名称<br/>alert(&quot;Parent folder name is: &quot; + fldr + &quot;&#92;n&quot;);<br/>// 显示所在drive名称<br/>alert(&quot;Contained on drive &quot; + fldr.Drive + &quot;&#92;n&quot;);<br/>// 判断是否为根目录<br/>if (fldr.IsRootFolder)<br/>alert(&quot;This is the root folder.&quot;);<br/>else<br/>alert(&quot;This folder isn&#039;t a root folder.&quot;);<br/>alert(&quot;&#92;n&#92;n&quot;);<br/>// 创建新文件夹<br/>fso.CreateFolder (&quot;C:&#92;&#92;Bogus&quot;);<br/>alert(&quot;Created folder C:&#92;&#92;Bogus&quot; + &quot;&#92;n&quot;);<br/>// 显示文件夹基础名称，不包含路径名<br/>alert(&quot;Basename = &quot; + fso.GetBaseName(&quot;c:&#92;&#92;bogus&quot;) + &quot;&#92;n&quot;);<br/>// 删除创建的文件夹<br/>fso.DeleteFolder (&quot;C:&#92;&#92;Bogus&quot;);<br/>alert(&quot;Deleted folder C:&#92;&#92;Bogus&quot; + &quot;&#92;n&quot;);<br/>五、操作文件（Files）<br/>对文件进行的操作要比以上介绍的驱动器（Drive）和文件夹（Folder）操作复杂些，基本上分为以下两个类别：对文件的创建、拷贝、移动、删除操作和对文件内容的创建、添加、删除和读取操作。下面分别详细介绍。<br/>（一）创建文件<br/>一共有3种方法可用于创建一个空文本文件，这种文件有时候也叫做文本流（text stream）。<br/>第一种是使用CreateTextFile方法。代码如下：<br/>var fso, f1;<br/>fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>f1 = fso.CreateTextFile(&quot;c:&#92;&#92;testfile.txt&quot;, true);<br/>第二种是使用OpenTextFile方法，并添加上ForWriting属性，ForWriting的值为2。代码如下：<br/>var fso, ts;<br/>var ForWriting= 2;<br/>fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>ts = fso.OpenTextFile(&quot;c:&#92;&#92;test.txt&quot;, ForWriting, true);<br/>第三种是使用OpenAsTextStream方法，同样要设置好ForWriting属性。代码如下：<br/>var fso, f1, ts;<br/>var ForWriting = 2;<br/>fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>fso.CreateTextFile (&quot;c:&#92;&#92;test1.txt&quot;);<br/>f1 = fso.GetFile(&quot;c:&#92;&#92;test1.txt&quot;);<br/>ts = f1.OpenAsTextStream(ForWriting, true);<br/>（二）添加数据到文件<br/>当文件被创建后，一般要按照“打开文件－&gt;填写数据－&gt;关闭文件”的步骤实现添加数据到文件的目的。<br/>打开文件可使用FileSystemObject对象的OpenTextFile方法，或者使用File对象的OpenAsTextStream方法。<br/>填写数据要使用到TextStream对象的Write、WriteLine或者WriteBlankLines方法。在同是实现写入数据的功能下，这3者的区别在于：Write方法不在写入数据末尾添加新换行符，WriteLine方法要在最后添加一个新换行符，而WriteBlankLines则增加一个或者多个空行。<br/>关闭文件可使用TextStream对象的Close方法。<br/>（三）创建文件及添加数据例程<br/>下面的代码将创建文件、添加数据、关闭文件几个步骤结合起来进行应用：<br/>var fso, tf;<br/>fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>// 创建新文件<br/>tf = fso.CreateTextFile(&quot;c:&#92;&#92;testfile.txt&quot;, true);<br/>// 填写数据，并增加换行符<br/>tf.WriteLine(&quot;Testing 1, 2, 3.&quot;) ;<br/>// 增加3个空行<br/>tf.WriteBlankLines(3) ;<br/>// 填写一行，不带换行符<br/>tf.Write (&quot;This is a test.&quot;);<br/>// 关闭文件<br/>tf.Close();<br/>（四）读取文件内容<br/>从文本文件中读取数据要使用TextStream对象的Read、ReadLine或ReadAll 方法。Read方法用于读取文件中指定数量的字符； ReadLine方法读取一整行，但不包括换行符；ReadAll方法则读取文本文件的整个内容。读取的内容存放于字符串变量中，用于显示、分析。<br/><br/>方法或者属性 描述<br/>BuildPath()<br/>生成一个文件路径<br/>CopyFile() 复制文件<br/>CopyFolder() 复制目录<br/>CreateFolder() 创建新目录<br/>CreateTextFile() 生成一个文件<br/>DeleteFile() 删除一个文件<br/>DeleteFolder() 删除一个目录<br/>DriveExists() 检验盘符是否存在<br/>Drives 返回盘符的集合<br/>FileExists() 检验文件是否存在<br/>FolderExists 检验一个目录是否存在<br/>GetAbsolutePathName() 取得一个文件的绝对路径<br/>GetBaseName() 取得文件名<br/>GetDrive() 取得盘符名<br/>GetDriveName() 取得盘符名<br/>GetExtensionName() 取得文件的后缀<br/>GetFile() 生成文件对象<br/>GetFileName() 取得文件名<br/>GetFolder() 取得目录对象<br/>GetParentFolderName 取得文件或目录的父目录名<br/>GetSpecialFolder() 取得特殊的目录名<br/>GetTempName() 生成一个临时文件对象<br/>MoveFile() 移动文件<br/>MoveFolder() 移动目录<br/>OpenTextFile() 打开一个文件流<br/><br/>f.Files //目录下所有文件集合<br/>f.attributes //文件属性<br/>Case 0 Str=&quot;普通文件。没有设置任何属性。 &quot;<br/>Case 1 Str=&quot;只读文件。可读写。 &quot;<br/>Case 2 Str=&quot;隐藏文件。可读写。 &quot;<br/>Case 4 Str=&quot;系统文件。可读写。 &quot;<br/>Case 16 Str=&quot;文件夹或目录。只读。 &quot;<br/>Case 32 Str=&quot;上次备份后已更改的文件。可读写。 &quot;<br/>Case 1024 Str=&quot;链接或快捷方式。只读。 &quot;<br/>Case 2048 Str=&quot; 压缩文件。只读。&quot;<br/>f.Datecreated // 创建时间<br/>f.DateLastAccessed //上次访问时间<br/>f.DateLastModified // 上次修改时间<br/>f.Path //文件路径<br/>f.Name //文件名称<br/>f.Type //文件类型<br/>f.Size // 文件大小（单位：字节）<br/>f.ParentFolder //父目录<br/>f.RootFolder // 根目录<br/>实例说明<br/>BuildPath(路径,文件名) //这个方法会对给定的路径加上文件，并自动加上分界符<br/>&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt;<br/>&lt;!--<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>var newpath = fso.BuildPath(&quot;c:&#92;&#92;tmp&quot;, &quot;51js.txt&quot;); //生成 c:&#92;tmp&#92;51js.txt的路径<br/>alert(newpath);<br/>--&gt;<br/>&lt;/SCRIPT&gt;<br/>CopyFile(源文件, 目标文件, 覆盖) //复制源文件到目标文件，当覆盖值为true时，如果目标文件存在会把文件覆盖<br/>&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt;<br/>&lt;!--<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>var newpath = fso.CopyFile(&quot;c:&#92;&#92;autoexec.bat&quot;, &quot;d:&#92;&#92;autoexec.bak&quot;);<br/>--&gt;<br/>&lt;/SCRIPT&gt;<br/>CopyFolder(对象目录,目标目录 ,覆盖) //复制对象目录到目标目录，当覆盖为true时，如果目标目录存在会把文件覆盖<br/>&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt;<br/>&lt;!--<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>fso.CopyFolder(&quot;c:&#92;&#92;WINDOWS&#92;&#92;Desktop&quot;, &quot;d:&#92;&#92;&quot;); //把C盘的Desktop目录复制到D盘的根目录<br/>--&gt;<br/>&lt;/SCRIPT&gt;<br/>CreateFolder(目录名) //创建一个新的目录<br/>&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt;<br/>&lt;!--<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>var newFolderName = fso.CreateFolder(&quot;c:&#92;&#92;51JS&quot;); //在C盘上创建一个51JS的目录<br/>--&gt;<br/>&lt;/SCRIPT&gt;<br/>CreateTextFile(文件名, 覆盖) //创建一个新的文件，如果此文件已经存在，你需要把覆盖值定为true<br/>&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt;<br/>&lt;!--<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>var newFileObject = fso.CreateTextFile(&quot;c:&#92;&#92;autoexec51JS.bat&quot;, true); //脚本将在C盘创建一个叫 autoexec51JS.bat的文件<br/>--&gt;<br/>&lt;/SCRIPT&gt;<br/>DeleteFile(文件名, 只读？) //删除一个文件，如果文件的属性是只读的话，你需要把只读值设为true<br/>&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt;<br/>&lt;!--<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;); //为了安全我先把要删除的autoexec.bat备份到你的D盘<br/>var newpath = fso.CopyFile(&quot;c:&#92;&#92;autoexec.bat&quot;, &quot;d:&#92;&#92;autoexec.bat&quot;); //把C盘的autoexec.bat文件删除掉<br/>fso.DeleteFile(&quot;c:&#92;&#92;autoexec.bat&quot;, true);<br/>--&gt;<br/>&lt;/SCRIPT&gt;<br/>DeleteFolder(文件名, 只读？)//删除一个目录，如果目录的属性是只读的话，你需要把只读值设为true<br/>&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt;<br/>&lt;!--<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>fso.CopyFolder(&quot;c:&#92;&#92;WINDOWS&#92;&#92;Desktop&quot;, &quot;d:&#92;&#92;&quot;); //为了安全我先把你C盘的Desktop目录复制到你D盘的根目录<br/>fso.DeleteFolder(&quot;c:&#92;&#92;WINDOWS&#92;&#92;Desktop&quot;, true); //把你的Desktop目录删除，但因为desktop是系统的东西，所以不能全部删除，但.........<br/>--&gt;<br/>&lt;/SCRIPT&gt;<br/>DriveExists(盘符) //检查一个盘是否存在，如果存在就返会真，不存在就返回.......<br/>&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt;<br/>&lt;!--<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>hasDriveD = fso.DriveExists(&quot;d&quot;); //检查系统是否有D盘存在<br/>hasDriveZ = fso.DriveExists(&quot;z&quot;); //检查系统是否有Z盘存在<br/>if (hasDriveD) alert(&quot;你的系统内有一个D盘&quot;);<br/>if (!hasDriveZ) alert(&quot;你的系统内没有Z盘&quot;);<br/>--&gt;<br/>&lt;/SCRIPT&gt;<br/>FileExists(文件名) //检查一个文件是否存在，如果存在就返会真，不存在就返回.......<br/>&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt;<br/>&lt;!--<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>fileName = fso.FileExists(&quot;c:&#92;&#92;autoexec.bat&quot;);<br/>if (fileName) alert(&quot;你在C盘中有autoexec.bat文件，按下确定后这个文件将被删除！&quot;); //开个玩笑:)<br/>--&gt;<br/>&lt;/SCRIPT&gt;<br/>FolderExists(目录名) //检查一个目录是否存在，如果存在就返会真，不存在就返回.......<br/>&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt;<br/>&lt;!--<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>folderName = fso.FolderExists(&quot;c:&#92;&#92;WINDOWS&#92;&#92;Fonts&quot;);<br/>if (folderName) alert(&quot;按下确定后系统的字库将被删除！&quot;); //开个玩笑:)<br/>--&gt;<br/>&lt;/SCRIPT&gt;<br/>GetAbsolutePathName(文件对象) //返回文件对象在系统的绝对路径<br/>&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt;<br/>&lt;!--<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>pathName = fso.GetAbsolutePathName(&quot;c:&#92;&#92;autoexec.bat&quot;);<br/>alert(pathName);<br/>--&gt;<br/>&lt;/SCRIPT&gt;<br/>GetBaseName(文件对象) //返回文件对象的文件名<br/>&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt;<br/>&lt;!--<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>baseName = fso.GetBaseName(&quot;c:&#92;&#92;autoexec.bat&quot;); //取得autoexec.bat的文件名autoexec<br/>alert(baseName);<br/>--&gt;<br/>&lt;/SCRIPT&gt;<br/>GetExtensionName(文件对象) //文件的后缀<br/>&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt;<br/>&lt;!--<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>exName = fso.GetExtensionName(&quot;c:&#92;&#92;autoexec.bat&quot;); //取得autoexec.bat后缀bat<br/>alert(exName);<br/>--&gt;<br/>&lt;/SCRIPT&gt;<br/>GetParentFolderName(文件对象) //取得父级的目录名<br/>&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt;<br/>&lt;!--<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>parentName = fso.GetParentFolderName(&quot;c:&#92;&#92;autoexec.bat&quot;); //取得autoexec.bat的父级目录C盘<br/>alert(parentName);<br/>--&gt;<br/>&lt;/SCRIPT&gt;<br/>GetSpecialFolder(目录代码) //取得系统中一些特别的目录的路径，目录代码有3个分别是 0:安装Window的目录 1:系统文件目录 2:临时文件目录<br/>&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt;<br/>&lt;!--<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>tmpFolder = fso.GetSpecialFolder(2); //取得系统临时文件目录的路径 如我的是 C:&#92;windows&#92;temp<br/>alert(tmpFolder);<br/>--&gt;<br/>&lt;/SCRIPT&gt;<br/>GetTempName() //生成一个随机的临时文件对象，会以rad带头后面跟着些随机数，就好象一些软件在安装时会生成*.tmp<br/>&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt;<br/>&lt;!--<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>tmpName = fso.GetTempName(); //我在测试时就生成了radDB70E.tmp<br/>alert(tmpName);<br/>--&gt;<br/>&lt;/SCRIPT&gt;<br/>MoveFile(源文件, 目标文件) //把源文件移到目标文件的位置<br/>&lt;SCRIPT LANGUAGE=&quot;JavaScript&quot;&gt;<br/>&lt;!--<br/>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;);<br/>var newpath = fso.MoveFile(&quot;c:&#92;&#92;autoexec.bat&quot;, &quot;d:&#92;&#92;autoexec.bat&quot;); //把C盘的autoexec.bat文件移移动到D盘<br/>--&gt;<br/>&lt;/SCRIPT&gt;<br/>Javascript是网页制作中离不开的脚本语言，依靠它，一个网页的内容才生动活泼、富有朝气。但也许你还没有发现并应用它的一些更高级的功能吧？比如，对文件和文件夹进行读、写和删除，就象在VB、VC等高级语言中经常做的工作一样。怎么样，你是否需要了解这方面的知识？那就请跟我来，本文将详细描述如何使用Javascript语言进行文件操作。&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; 一、功能实现核心：FileSystemObject&nbsp;&nbsp;&nbsp;&nbsp;对象&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 其实，要在Javascript中实现文件操作功能，主要就是依靠FileSystemobject对象。在详细介绍FileSystemobject对象的各个属性和方法的使用细节前，先来看看这个对象包括哪些相关对象和集合：&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; 二、FileSystemObject编程三部曲&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 使用FileSystemObject&nbsp;&nbsp;&nbsp;&nbsp;对象进行编程很简单，一般要经过如下的步骤：&nbsp;&nbsp;&nbsp;&nbsp;创建FileSystemObject对象、应用相关方法、访问对象相关属性&nbsp;&nbsp;&nbsp;&nbsp;。&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; （一）创建FileSystemObject对象&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 创建FileSystemObject对象的代码只要1行：&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;fso&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;&nbsp;&nbsp;&nbsp;ActiveXObject(&quot;Scripting.FileSystemObject&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 上述代码执行后，fso就成为一个FileSystemObject对象实例。&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; （二）应用相关方法&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 创建对象实例后，就可以使用对象的相关方法了。比如，使用CreateTextFile方法创建一个文本文件：&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;fso&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;&nbsp;&nbsp;&nbsp;ActiveXObject(&quot;Scripting.FileSystemObject&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;f1&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;fso.createtextfile(&quot;c:&#92;&#92;myjstest.txt&quot;,true&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; （三）访问对象相关属性&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 要访问对象的相关属性，首先要建立指向对象的句柄，这就要通过get系列方法实现：GetDrive负责获取驱动器信息，GetFolder负责获取文件夹信息，GetFile负责获取文件信息。比如，指向下面的代码后，f1就成为指向文件c:&#92;test.txt的句柄：&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;fso&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;&nbsp;&nbsp;&nbsp;ActiveXObject(&quot;Scripting.FileSystemObject&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;f1&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;fso.GetFile(&quot;c:&#92;&#92;myjstest.txt&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 然后，使用f1访问对象的相关属性。比如：&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;fso&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;&nbsp;&nbsp;&nbsp;ActiveXObject(&quot;Scripting.FileSystemObject&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;f1&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;fso.GetFile(&quot;c:&#92;&#92;myjstest.txt&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; alert(&quot;File&nbsp;&nbsp;&nbsp;&nbsp;last&nbsp;&nbsp;&nbsp;&nbsp;modified:&nbsp;&nbsp;&nbsp;&nbsp;&quot;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;f1.DateLastModified);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 执行上面最后一句后，将显示c:&#92;myjstest.txt的最后修改日期属性值。&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 但有一点请注意：对于使用create方法建立的对象，就不必再使用get方法获取对象句柄了，这时直接使用create方法建立的句柄名称就可以：&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;fso&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;&nbsp;&nbsp;&nbsp;ActiveXObject(&quot;Scripting.FileSystemObject&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;f1&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;fso.createtextfile(&quot;c:&#92;&#92;myjstest.txt&quot;,true&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; alert(&quot;File&nbsp;&nbsp;&nbsp;&nbsp;last&nbsp;&nbsp;&nbsp;&nbsp;modified:&nbsp;&nbsp;&nbsp;&nbsp;&quot;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;f1.DateLastModified);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 三、操作驱动器（Drives）&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 使用FileSystemObject对象来编程操作驱动器（Drives）和文件夹（Folders）很容易，这就象在Windows文件浏览器中对文件进行交互操作一样，比如：拷贝、移动文件夹，获取文件夹的属性。&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; （一）Drives对象属性&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; Drive对象负责收集系统中的物理或逻辑驱动器资源内容，它具有如下属性：&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; l&nbsp;&nbsp;&nbsp;&nbsp;TotalSize：以字节（byte）为单位计算的驱动器大小。&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; l&nbsp;&nbsp;&nbsp;&nbsp;AvailableSpace或FreeSpace：以字节（byte）为单位计算的驱动器可用空间。&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; l&nbsp;&nbsp;&nbsp;&nbsp;DriveLetter：驱动器字母。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; l&nbsp;&nbsp;&nbsp;&nbsp;DriveType：驱动器类型，取值为：removable（移动介质）、fixed（固定介质）、network（网络资源）、CD-ROM或者RAM盘。&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; l&nbsp;&nbsp;&nbsp;&nbsp;SerialNumber：驱动器的系列码。&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; l&nbsp;&nbsp;&nbsp;&nbsp;FileSystem：所在驱动器的文件系统类型，取值为FAT、FAT32和NTFS。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; l&nbsp;&nbsp;&nbsp;&nbsp;IsReady：驱动器是否可用。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; l&nbsp;&nbsp;&nbsp;&nbsp;ShareName：共享名称。&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; l&nbsp;&nbsp;&nbsp;&nbsp;VolumeName：卷标名称。&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; l&nbsp;&nbsp;&nbsp;&nbsp;Path和RootFolder：驱动器的路径或者根目录名称。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; （二）Drive对象操作例程&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 下面的例程显示驱动器C的卷标、总容量和可用空间等信息：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;fso,&nbsp;&nbsp;&nbsp;&nbsp;drv,&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;&nbsp;&nbsp;&nbsp;=&quot;&quot;;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; fso&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;&nbsp;&nbsp;&nbsp;ActiveXObject(&quot;Scripting.FileSystemObject&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; drv&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;fso.GetDrive(fso.GetDriveName(&quot;c:&#92;&#92;&quot;));&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; s&nbsp;&nbsp;&nbsp;&nbsp;+=&nbsp;&nbsp;&nbsp;&nbsp;&quot;Drive&nbsp;&nbsp;&nbsp;&nbsp;C:&quot;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;&quot;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;&quot;;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; s&nbsp;&nbsp;&nbsp;&nbsp;+=&nbsp;&nbsp;&nbsp;&nbsp;drv.VolumeName&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;&quot;&#92;n&quot;;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; s&nbsp;&nbsp;&nbsp;&nbsp;+=&nbsp;&nbsp;&nbsp;&nbsp;&quot;Total&nbsp;&nbsp;&nbsp;&nbsp;Space:&nbsp;&nbsp;&nbsp;&nbsp;&quot;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;drv.TotalSize&nbsp;&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;&nbsp;&nbsp;1024;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; s&nbsp;&nbsp;&nbsp;&nbsp;+=&nbsp;&nbsp;&nbsp;&nbsp;&quot;&nbsp;&nbsp;&nbsp;&nbsp;Kb&quot;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;&quot;&#92;n&quot;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; s&nbsp;&nbsp;&nbsp;&nbsp;+=&nbsp;&nbsp;&nbsp;&nbsp;&quot;Free&nbsp;&nbsp;&nbsp;&nbsp;Space:&nbsp;&nbsp;&nbsp;&nbsp;&quot;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;drv.FreeSpace&nbsp;&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;&nbsp;&nbsp;1024;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; s&nbsp;&nbsp;&nbsp;&nbsp;+=&nbsp;&nbsp;&nbsp;&nbsp;&quot;&nbsp;&nbsp;&nbsp;&nbsp;Kb&quot;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;&quot;&#92;n&quot;;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; alert(s);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 执行后出现下面的信息框：&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp; 四、操作文件夹（Folders）&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 涉及到文件夹的操作包括创建、移动、删除以及获取相关属性。&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; （一）&nbsp;&nbsp;&nbsp;&nbsp;Folder对象的相关属性和方法列表&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>（二）Folder对象操作例程&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 下面的例程将练习获取父文件夹名称、创建文件夹、删除文件夹、判断是否为根目录等操作：&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;fso,&nbsp;&nbsp;&nbsp;&nbsp;fldr,&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;&quot;&quot;;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;创建FileSystemObject对象实例&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; fso&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;&nbsp;&nbsp;&nbsp;ActiveXObject(&quot;Scripting.FileSystemObject&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;获取Drive&nbsp;&nbsp;&nbsp;&nbsp;对象&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; fldr&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;fso.GetFolder(&quot;c:&#92;&#92;&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;显示父目录名称&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; alert(&quot;Parent&nbsp;&nbsp;&nbsp;&nbsp;folder&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;&nbsp;&nbsp;&nbsp;is:&nbsp;&nbsp;&nbsp;&nbsp;&quot;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;fldr&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;&quot;&#92;n&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;显示所在drive名称&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; alert(&quot;Contained&nbsp;&nbsp;&nbsp;&nbsp;on&nbsp;&nbsp;&nbsp;&nbsp;drive&nbsp;&nbsp;&nbsp;&nbsp;&quot;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;fldr.Drive&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;&quot;&#92;n&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;判断是否为根目录&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; if&nbsp;&nbsp;&nbsp;&nbsp;(fldr.IsRootFolder)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; alert(&quot;This&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;folder.&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; else&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; alert(&quot;This&nbsp;&nbsp;&nbsp;&nbsp;folder&nbsp;&nbsp;&nbsp;&nbsp;isn&#039;t&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;&nbsp;&nbsp;&nbsp;folder.&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; alert(&quot;&#92;n&#92;n&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;创建新文件夹&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; fso.CreateFolder&nbsp;&nbsp;&nbsp;&nbsp;(&quot;C:&#92;&#92;Bogus&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; alert(&quot;Created&nbsp;&nbsp;&nbsp;&nbsp;folder&nbsp;&nbsp;&nbsp;&nbsp;C:&#92;&#92;Bogus&quot;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;&quot;&#92;n&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;显示文件夹基础名称，不包含路径名&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; alert(&quot;Basename&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;&quot;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;fso.GetBaseName(&quot;c:&#92;&#92;bogus&quot;)&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;&quot;&#92;n&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;删除创建的文件夹&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; fso.DeleteFolder&nbsp;&nbsp;&nbsp;&nbsp;(&quot;C:&#92;&#92;Bogus&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; alert(&quot;Deleted&nbsp;&nbsp;&nbsp;&nbsp;folder&nbsp;&nbsp;&nbsp;&nbsp;C:&#92;&#92;Bogus&quot;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;&quot;&#92;n&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 五、操作文件（Files）&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 对文件进行的操作要比以上介绍的驱动器（Drive）和文件夹（Folder）操作复杂些，基本上分为以下两个类别：对文件的创建、拷贝、移动、删除操作和对文件内容的创建、添加、删除和读取操作。下面分别详细介绍。&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; （一）创建文件&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 一共有3种方法可用于创建一个空文本文件，这种文件有时候也叫做文本流（text&nbsp;&nbsp;&nbsp;&nbsp;stream）。&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 第一种是使用CreateTextFile方法。代码如下：&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;fso,&nbsp;&nbsp;&nbsp;&nbsp;f1;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; fso&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;&nbsp;&nbsp;&nbsp;ActiveXObject(&quot;Scripting.FileSystemObject&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; f1&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;fso.CreateTextFile(&quot;c:&#92;&#92;testfile.txt&quot;,&nbsp;&nbsp;&nbsp;&nbsp;true);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 第二种是使用OpenTextFile方法，并添加上ForWriting属性，ForWriting的值为2。代码如下：&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;fso,&nbsp;&nbsp;&nbsp;&nbsp;ts;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;ForWriting=&nbsp;&nbsp;&nbsp;&nbsp;2;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; fso&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;&nbsp;&nbsp;&nbsp;ActiveXObject(&quot;Scripting.FileSystemObject&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; ts&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;fso.OpenTextFile(&quot;c:&#92;&#92;test.txt&quot;,&nbsp;&nbsp;&nbsp;&nbsp;ForWriting,&nbsp;&nbsp;&nbsp;&nbsp;true);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 第三种是使用OpenAsTextStream方法，同样要设置好ForWriting属性。代码如下：&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;fso,&nbsp;&nbsp;&nbsp;&nbsp;f1,&nbsp;&nbsp;&nbsp;&nbsp;ts;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;ForWriting&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;2;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; fso&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;&nbsp;&nbsp;&nbsp;ActiveXObject(&quot;Scripting.FileSystemObject&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; fso.CreateTextFile&nbsp;&nbsp;&nbsp;&nbsp;(&quot;c:&#92;&#92;test1.txt&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; f1&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;fso.GetFile(&quot;c:&#92;&#92;test1.txt&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; ts&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;f1.OpenAsTextStream(ForWriting,&nbsp;&nbsp;&nbsp;&nbsp;true);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; （二）添加数据到文件&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 当文件被创建后，一般要按照“打开文件－&gt;填写数据－&gt;关闭文件”的步骤实现添加数据到文件的目的。&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 打开文件可使用FileSystemObject对象的OpenTextFile方法，或者使用File对象的OpenAsTextStream方法。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 填写数据要使用到TextStream对象的Write、WriteLine或者WriteBlankLines方法。在同是实现写入数据的功能下，这3 者的区别在于：Write方法不在写入数据末尾添加新换行符，WriteLine方法要在最后添加一个新换行符，而WriteBlankLines则增加一个或者多个空行。&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 关闭文件可使用TextStream对象的Close方法。&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; （三）创建文件及添加数据例程&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 下面的代码将创建文件、添加数据、关闭文件几个步骤结合起来进行应用：&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;fso,&nbsp;&nbsp;&nbsp;&nbsp;tf;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; fso&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;&nbsp;&nbsp;&nbsp;ActiveXObject(&quot;Scripting.FileSystemObject&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;创建新文件&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; tf&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;fso.CreateTextFile(&quot;c:&#92;&#92;testfile.txt&quot;,&nbsp;&nbsp;&nbsp;&nbsp;true);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;填写数据，并增加换行符&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; tf.WriteLine(&quot;Testing&nbsp;&nbsp;&nbsp;&nbsp;1,&nbsp;&nbsp;&nbsp;&nbsp;2,&nbsp;&nbsp;&nbsp;&nbsp;3.&quot;)&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;增加3个空行&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; tf.WriteBlankLines(3)&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;填写一行，不带换行符&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; tf.Write&nbsp;&nbsp;&nbsp;&nbsp;(&quot;This&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;&nbsp;&nbsp;&nbsp;test.&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;关闭文件&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; tf.Close();&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; （四）读取文件内容&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 从文本文件中读取数据要使用TextStream对象的Read、ReadLine或ReadAll&nbsp;&nbsp;&nbsp;&nbsp;方法。Read方法用于读取文件中指定数量的字符；ReadLine方法读取一整行，但不包括换行符；ReadAll方法则读取文本文件的整个内容。读取的内容存放于字符串变量中，用于显示、分析。在使用Read或ReadLine方法读取文件内容时，如果要跳过一些部分，就要用到Skip或 SkipLine方法。&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 下面的代码演示打开文件、填写数据，然后读取数据：&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;fso,&nbsp;&nbsp;&nbsp;&nbsp;f1,&nbsp;&nbsp;&nbsp;&nbsp;ts,&nbsp;&nbsp;&nbsp;&nbsp;s;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;ForReading&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; fso&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;&nbsp;&nbsp;&nbsp;ActiveXObject(&quot;Scripting.FileSystemObject&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;创建文件&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; f1&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;fso.CreateTextFile(&quot;c:&#92;&#92;testfile.txt&quot;,&nbsp;&nbsp;&nbsp;&nbsp;true);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;填写一行数据&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; f1.WriteLine(&quot;Hello&nbsp;&nbsp;&nbsp;&nbsp;World&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; f1.WriteBlankLines(1);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;关闭文件&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; f1.Close();&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;打开文件&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; ts&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;fso.OpenTextFile(&quot;c:&#92;&#92;testfile.txt&quot;,&nbsp;&nbsp;&nbsp;&nbsp;ForReading);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;读取文件一行内容到字符串&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; s&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;ts.ReadLine();&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;显示字符串信息&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; alert(&quot;File&nbsp;&nbsp;&nbsp;&nbsp;contents&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;&#039;&quot;&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;&nbsp;&nbsp;&nbsp;+&nbsp;&nbsp;&nbsp;&nbsp;&quot;&#039;&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;关闭文件&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; ts.Close();&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; （五）移动、拷贝和删除文件&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 对于以上三种文件操作，Javascript各有两种对应的方法：File.Move&nbsp;&nbsp;&nbsp;&nbsp;或&nbsp;&nbsp;&nbsp;&nbsp;FileSystemObject.MoveFile用于移动文件；File.Copy&nbsp;&nbsp;&nbsp;&nbsp;或&nbsp;&nbsp;&nbsp;&nbsp;FileSystemObject.CopyFile用于拷贝文件；File.Delete&nbsp;&nbsp;&nbsp;&nbsp;或&nbsp;&nbsp;&nbsp;&nbsp;FileSystemObject.DeleteFile用于删除文件。&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 下面的代码演示在驱动器C的根目录下创建一个文本文件，填写一些内容，然后将文件移动到&#92;tmp目录下，再在目录&#92;temp下面建立一个文件拷贝，最后删除这两个目录的文件：&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;fso,&nbsp;&nbsp;&nbsp;&nbsp;f1,&nbsp;&nbsp;&nbsp;&nbsp;f2,&nbsp;&nbsp;&nbsp;&nbsp;s;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; fso&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;&nbsp;&nbsp;&nbsp;ActiveXObject(&quot;Scripting.FileSystemObject&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; f1&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;fso.CreateTextFile(&quot;c:&#92;&#92;testfile.txt&quot;,&nbsp;&nbsp;&nbsp;&nbsp;true);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;写一行&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; f1.Write(&quot;This&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;&nbsp;&nbsp;&nbsp;test.&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;关闭文件&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; f1.Close();&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;获取C:&#92;根目录下的文件句柄&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; f2&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;fso.GetFile(&quot;c:&#92;&#92;testfile.txt&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;移动文件到&#92;tmp目录下&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; f2.Move&nbsp;&nbsp;&nbsp;&nbsp;(&quot;c:&#92;&#92;tmp&#92;&#92;testfile.txt&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;拷贝文件到&#92;temp目录下&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; f2.Copy&nbsp;&nbsp;&nbsp;&nbsp;(&quot;c:&#92;&#92;temp&#92;&#92;testfile.txt&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;获取文件句柄&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; f2&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;fso.GetFile(&quot;c:&#92;&#92;tmp&#92;&#92;testfile.txt&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; f3&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;fso.GetFile(&quot;c:&#92;&#92;temp&#92;&#92;testfile.txt&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;删除文件&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; f2.Delete();&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; f3.Delete();&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 六、结&nbsp;&nbsp;&nbsp;&nbsp;语&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; 通过以上对FileSystemObject的各种对象、属性和方法的介绍和示例，相信你已经对如何使用JavaScript语言在页面中操作驱动器、文件和文件夹有了清晰的认识。但是上述提及的例程都非常简单，要全面、灵活地掌握JavaScript文件操作技术，还需要大量的实践练习。而且还有一点提醒大家，由于涉及到在浏览器中进行文件读写这样的高级操作，对于默认的浏览器安全级别而言，在代码运行前都会有一个信息提示，这点请在实际环境中提示访问者注意。<br/>需要权限允许&nbsp;&nbsp; <br/>&nbsp;&nbsp; &lt;script&nbsp;&nbsp;&nbsp;&nbsp;language=&quot;JavaScript&quot;&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp; &lt;!--&nbsp;&nbsp; <br/>&nbsp;&nbsp; function&nbsp;&nbsp;&nbsp;&nbsp;ReadTxt(file,oTxt)&#123;&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;path=file.value&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;fso&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;new&nbsp;&nbsp;&nbsp;&nbsp;ActiveXObject(&quot;Scripting.FileSystemObject&quot;);&nbsp;&nbsp; <br/>&nbsp;&nbsp; var&nbsp;&nbsp;&nbsp;&nbsp;f&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;fso.OpenTextFile(path,&nbsp;&nbsp;&nbsp;&nbsp;1);&nbsp;&nbsp; <br/>&nbsp;&nbsp; oTxt.value=f.ReadAll();&nbsp;&nbsp; <br/>&nbsp;&nbsp; &#125;&nbsp;&nbsp; <br/>&nbsp;&nbsp; //--&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp; &lt;/script&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp; &lt;form&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp; &lt;input&nbsp;&nbsp;&nbsp;&nbsp;type=&quot;file&quot;&nbsp;&nbsp;&nbsp;&nbsp;name=&quot;file1&quot;&gt;&lt;input&nbsp;&nbsp;&nbsp;&nbsp;type=button&nbsp;&nbsp;&nbsp;&nbsp;onclick=&quot;ReadTxt(file1,txt)&quot;&nbsp;&nbsp;&nbsp;&nbsp;value=&quot;Read&quot;&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp; &lt;textarea&nbsp;&nbsp;&nbsp;&nbsp;name=&quot;txt&quot;&gt;&lt;/textarea&gt;&nbsp;&nbsp; <br/>&nbsp;&nbsp; &lt;/form&gt;&nbsp;&nbsp; <br/><br/><br/>本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/zhuyi_study/archive/2008/09/06/2892162.aspx<br/>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] JS文件使用大全]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>