﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;明月松间照 清泉石上流-文章分类-JS</title><link>http://www.blogjava.net/xuechen0721/category/18010.html</link><description>&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;———&amp;nbsp;兵临城下&amp;nbsp;&amp;nbsp;猫科动物</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 12:12:15 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 12:12:15 GMT</pubDate><ttl>60</ttl><item><title>Javascript-文件操作</title><link>http://www.blogjava.net/xuechen0721/articles/85257.html</link><dc:creator>兵临城下</dc:creator><author>兵临城下</author><pubDate>Mon, 04 Dec 2006 01:01:00 GMT</pubDate><guid>http://www.blogjava.net/xuechen0721/articles/85257.html</guid><wfw:comment>http://www.blogjava.net/xuechen0721/comments/85257.html</wfw:comment><comments>http://www.blogjava.net/xuechen0721/articles/85257.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xuechen0721/comments/commentRss/85257.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xuechen0721/services/trackbacks/85257.html</trackback:ping><description><![CDATA[
		<div class="singlepost">
				<div class="posttitle">
						<a class="singleposttitle" id="viewpost1_TitleUrl" href="/zhanglijun33/archive/2006/12/01/JSWriteRead.html">Javascript-文件操作</a> (转自<a class="headermaintitle" id="Header1_HeaderTitle" href="/zhanglijun33/"><strong><em><font color="#009ef5" size="5">zhanglijun33</font></em></strong></a>)</div>
				<strong>Javascript----文件操作</strong>
				<br />一、功能实现核心：FileSystemObject 对象 <br />    要在javascript中实现文件操作功能，主要就是依靠FileSystemobject对象。<br />二、FileSystemObject编程 <br />使用FileSystemObject 对象进行编程很简单，一般要经过如下的步骤： 创建FileSystemObject对象、应用相关方法、访问对象相关属性 。 <br />（一）创建FileSystemObject对象 <br />创建FileSystemObject对象的代码只要1行： <br />var fso = new ActiveXObject("Scripting.FileSystemObject"); <br />上述代码执行后，fso就成为一个FileSystemObject对象实例。 <br />（二）应用相关方法 <br />创建对象实例后，就可以使用对象的相关方法了。比如，使用CreateTextFile方法创建一个文本文件： <br />var fso = new ActiveXObject("Scripting.FileSystemObject"); <br />var f1 = fso.createtextfile("c:\\\\myjstest.txt",true"); <br />（三）访问对象相关属性 <br />要访问对象的相关属性，首先要建立指向对象的句柄，这就要通过get系列方法实现：GetDrive负责获取驱动器信息，GetFolder负责获取文件夹信息，GetFile负责获取文件信息。比如，指向下面的代码后，f1就成为指向文件c:\\test.txt的句柄： <br />var fso = new ActiveXObject("Scripting.FileSystemObject"); <br />var f1 = fso.GetFile("c:\\\\myjstest.txt"); <br />然后，使用f1访问对象的相关属性。比如： <br />var fso = new ActiveXObject("Scripting.FileSystemObject"); <br />var f1 = fso.GetFile("c:\\\\myjstest.txt"); <br />alert("File last modified: " + f1.DateLastModified); <br />执行上面最后一句后，将显示c:\\myjstest.txt的最后修改日期属性值。 <br />但有一点请注意：对于使用create方法建立的对象，就不必再使用get方法获取对象句柄了，这时直接使用create方法建立的句柄名称就可以： <br />var fso = new ActiveXObject("Scripting.FileSystemObject"); <br />var f1 = fso.createtextfile("c:\\\\myjstest.txt",true"); <br />alert("File last modified: " + 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 =""; <br />fso = new ActiveXObject("Scripting.FileSystemObject"); <br />drv = fso.GetDrive(fso.GetDriveName("c:\\\\")); <br />s += "Drive C:" + " - "; <br />s += drv.VolumeName + "\\n"; <br />s += "Total Space: " + drv.TotalSize / 1024; <br />s += " Kb" + "\\n"; <br />s += "Free Space: " + drv.FreeSpace / 1024; <br />s += " Kb" + "\\n"; <br />alert(s); <br />四、操作文件夹（Folders） <br />涉及到文件夹的操作包括创建、移动、删除以及获取相关属性。 <br />Folder对象操作例程 :<br />下面的例程将练习获取父文件夹名称、创建文件夹、删除文件夹、判断是否为根目录等操作： <br />var fso, fldr, s = ""; <br />// 创建FileSystemObject对象实例 <br />fso = new ActiveXObject("Scripting.FileSystemObject"); <br />// 获取Drive 对象 <br />fldr = fso.GetFolder("c:\\\\"); <br />// 显示父目录名称 <br />alert("Parent folder name is: " + fldr + "\\n"); <br />// 显示所在drive名称 <br />alert("Contained on drive " + fldr.Drive + "\\n"); <br />// 判断是否为根目录 <br />if (fldr.IsRootFolder) <br />alert("This is the root folder."); <br />else <br />alert("This folder isn\'t a root folder."); <br />alert("\\n\\n"); <br />// 创建新文件夹 <br />fso.CreateFolder ("C:\\\\Bogus"); <br />alert("Created folder C:\\\\Bogus" + "\\n"); <br />// 显示文件夹基础名称，不包含路径名 <br />alert("Basename = " + fso.GetBaseName("c:\\\\bogus") + "\\n"); <br />// 删除创建的文件夹 <br />fso.DeleteFolder ("C:\\\\Bogus"); <br />alert("Deleted folder C:\\\\Bogus" + "\\n"); <br />五、操作文件（Files） <br />对文件进行的操作要比以上介绍的驱动器（Drive）和文件夹（Folder）操作复杂些，基本上分为以下两个类别：对文件的创建、拷贝、移动、删除操作和对文件内容的创建、添加、删除和读取操作。下面分别详细介绍。 <br />（一）创建文件 <br />一共有3种方法可用于创建一个空文本文件，这种文件有时候也叫做文本流（text stream）。 <br />第一种是使用CreateTextFile方法。代码如下： <br />var fso, f1; <br />fso = new ActiveXObject("Scripting.FileSystemObject"); <br />f1 = fso.CreateTextFile("c:\\\\testfile.txt", true); <br />第二种是使用OpenTextFile方法，并添加上ForWriting属性，ForWriting的值为2。代码如下： <br />var fso, ts; <br />var ForWriting= 2; <br />fso = new ActiveXObject("Scripting.FileSystemObject"); <br />ts = fso.OpenTextFile("c:\\\\test.txt", ForWriting, true); <br />第三种是使用OpenAsTextStream方法，同样要设置好ForWriting属性。代码如下： <br />var fso, f1, ts; <br />var ForWriting = 2; <br />fso = new ActiveXObject("Scripting.FileSystemObject"); <br />fso.CreateTextFile ("c:\\\\test1.txt"); <br />f1 = fso.GetFile("c:\\\\test1.txt"); <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("Scripting.FileSystemObject"); <br />// 创建新文件 <br />tf = fso.CreateTextFile("c:\\\\testfile.txt", true); <br />// 填写数据，并增加换行符 <br />tf.WriteLine("Testing 1, 2, 3.") ; <br />// 增加3个空行 <br />tf.WriteBlankLines(3) ; <br />// 填写一行，不带换行符 <br />tf.Write ("This is a test."); <br />// 关闭文件 <br />tf.Close(); <br />（四）读取文件内容 <br />从文本文件中读取数据要使用TextStream对象的Read、ReadLine或ReadAll 方法。Read方法用于读取文件中指定数量的字符；ReadLine方法读取一整行，但不包括换行符；ReadAll方法则读取文本文件的整个内容。读取的内容存放于字符串变量中，用于显示、分析。在使用Read或ReadLine方法读取文件内容时，如果要跳过一些部分，就要用到Skip或SkipLine方法。 <br />下面的代码演示打开文件、填写数据，然后读取数据： <br />var fso, f1, ts, s; <br />var ForReading = 1; <br />fso = new ActiveXObject("Scripting.FileSystemObject"); <br />// 创建文件 <br />f1 = fso.CreateTextFile("c:\\\\testfile.txt", true); <br />// 填写一行数据 <br />f1.WriteLine("Hello World"); <br />f1.WriteBlankLines(1); <br />// 关闭文件 <br />f1.Close(); <br />// 打开文件 <br />ts = fso.OpenTextFile("c:\\\\testfile.txt", ForReading); <br />// 读取文件一行内容到字符串 <br />s = ts.ReadLine(); <br />// 显示字符串信息 <br />alert("File contents = \'" + s + "\'"); <br />// 关闭文件 <br />ts.Close(); <br />（五）移动、拷贝和删除文件 <br />对于以上三种文件操作，javascript各有两种对应的方法：File.Move 或 FileSystemObject.MoveFile用于移动文件；File.Copy 或 FileSystemObject.CopyFile用于拷贝文件；File.Delete 或 FileSystemObject.DeleteFile用于删除文件。 <br />下面的代码演示在驱动器C的根目录下创建一个文本文件，填写一些内容，然后将文件移动到\\tmp目录下，再在目录\\temp下面建立一个文件拷贝，最后删除这两个目录的文件： <br />var fso, f1, f2, s; <br />fso = new ActiveXObject("Scripting.FileSystemObject"); <br />f1 = fso.CreateTextFile("c:\\\\testfile.txt", true); <br />// 写一行 <br />f1.Write("This is a test."); <br />// 关闭文件 <br />f1.Close(); <br />// 获取C:\\根目录下的文件句柄 <br />f2 = fso.GetFile("c:\\\\testfile.txt"); <br />// 移动文件到\\tmp目录下 <br />f2.Move ("c:\\\\tmp\\\\testfile.txt"); <br />// 拷贝文件到\\temp目录下 <br />f2.Copy ("c:\\\\temp\\\\testfile.txt"); <br />// 获取文件句柄 <br />f2 = fso.GetFile("c:\\\\tmp\\\\testfile.txt"); <br />f3 = fso.GetFile("c:\\\\temp\\\\testfile.txt"); <br />// 删除文件 <br />f2.Delete(); <br />f3.Delete(); <br />六、结 语 <br />通过以上对FileSystemObject的各种对象、属性和方法的介绍和示例，相信你已经对如何使用javascript语言在页面中操作驱动器、文件和文件夹有了清晰的认识。但是上述提及的例程都非常简单，要全面、灵活地掌握javascript文件操作技术，还需要大量的实践练习。而且还有一点提醒大家，由于涉及到在浏览器中进行文件读写这样的高级操作，对于默认的浏览器安全级别而言，在代码运行前都会有一个信息提示，这点请在实际环境中提示访问者注意。<br />&lt; 
<div class="itemdesc">posted on 2006-12-01 10:29 <a href="/zhanglijun33/">智者无疆</a> 阅读(30) <a href="/zhanglijun33/archive/2006/12/01/jswriteread.html#Post">评论(4)</a>  <a href="/zhanglijun33/admin/EditPosts.aspx?postid=84760">编辑</a> <a href="/zhanglijun33/AddToFavorite.aspx?id=84760">收藏</a><a href="/zhanglijun33/services/trackbacks/84760.aspx">引用</a><a href="javascript:d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&amp;u='+escape(d.location.href)+'&amp;c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();">收藏至365Key</a> 所属分类: <a href="/zhanglijun33/category/17808.html">about ajax</a></div></div>
		<img height="1" src="/zhanglijun33/aggbug/84760.html?webview=1" width="1" />
		<!--
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
<rdf:Description
rdf:about="http://www.blogjava.net/zhanglijun33/archive/2006/12/01/JSWriteRead.html"
dc:identifier="http://www.blogjava.net/zhanglijun33/archive/2006/12/01/JSWriteRead.html"
dc:title="Javascript-文件操作"
trackback:ping="http://www.blogjava.net/zhanglijun33/services/trackbacks/84760.aspx" />
</rdf:RDF>
-->
		<a name="pagedcomment">
		</a>评论: 
<div class="moreinfo"><ul class="morelist"><li class="morelistitem"><div class="moreinfotitle"><a title="permalink: re: Javascript-文件操作" href="/zhanglijun33/archive/2006/12/01/jswriteread.html#84762">#</a> <a name="84762"></a>re: Javascript-文件操作  <a id="Comments1_CommentList_ctl01_NameLink" href="/zhanglijun33/" target="_blank">智者无疆</a> Posted @ 2006-12-01 10:31 </div>使用JavaScript对XML文件进行读写 <br />以学生信息为例子。 <br />用到了3个文件studentINFO.html,studentinfo.xml,studentinfoNew.xml <br /><br />studentinfo.xml---学生信息 <br />&lt;?xml version="1.0"?&gt; <br />&lt;studentlist&gt; <br />&lt;student&gt; <br />&lt;id&gt;213&lt;/id&gt; <br />&lt;name&gt;asd&lt;/name&gt; <br />&lt;age&gt;sdf&lt;/age&gt; <br />&lt;/student&gt; <br />&lt;student&gt; <br />&lt;id&gt;rfwer&lt;/id&gt; <br />&lt;name&gt;&lt;/name&gt; <br />&lt;age&gt;&lt;/age&gt; <br />&lt;/student&gt;&lt;/studentlist&gt; <br /><br />studentinfoNew.xml---新添加的空的学生信息模版 <br />&lt;?xml version="1.0" encoding="gb2312"?&gt; <br />&lt;studentlist&gt; <br />&lt;student&gt; <br />&lt;id&gt;&lt;/id&gt; <br />&lt;name&gt;&lt;/name&gt; <br />&lt;age&gt;&lt;/age&gt; <br />&lt;/student&gt; <br />&lt;/studentlist&gt; <br /><br />studentINFO.html---增删改的用户UI <br />&lt;HTML&gt;&lt;BODY bgColor=#a1bae6&gt; <br />&lt;XML id=xmldso src="studentinfo.xml"&gt;&lt;/XML&gt; <br />&lt;XML id=studentinfoNew&gt;&lt;/XML&gt; &lt;!--加?xml数据--&gt; <br />&lt;SCRIPT Language=JavaScript&gt; <br />studentinfoNew.async = false; <br />studentinfoNew.load("studentinfoNew.xml"); <br /><br />function display(){ <br />var doc=xmldso.XMLDocument; <br />alert(doc.xml); <br />} <br /><br />function save(){ <br />try{ <br />var doc=xmldso.XMLDocument; <br />alert(doc.xml); <br />var strFile=""; <br />var fso, f, ts; <br />var s="E:\\習う\\XML\\javascript_ReadWriteXML\\studentinfo.xml"; <br />var ForReading = 1, ForWriting = 2, ForAppending = 8; <br />var TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0; <br />fso = new ActiveXObject("Scripting.FileSystemObject"); <br />if(!fso.FileExists(s)){ <br />alert(s+" is not exist!"); <br />}else{ <br />f = fso.GetFile(s); <br />ts = f.OpenAsTextStream(ForWriting, TristateUseDefault); <br />ts.WriteLine(doc.xml); <br />ts.Close( ); <br />} <br />}catch(e){ <br />alert(e); <br />} <br /><br />} <br /><br />//增加??； <br />function addID(){ <br />var doc=xmldso.XMLDocument; <br />var rootnode=doc.documentElement; <br />var sortNode = rootnode.selectNodes("//id"); <br />var currentid = sortNode.length-1; <br />var cc=""; <br />if(currentid==-1){ <br />var node= studentinfoNew.documentElement.childNodes(0).cloneNode(true); <br />xmldso.documentElement.appendChild(node); <br />}else{ <br />cc=sortNode.item(currentid).text; <br />if ((cc=="aa")||(cc=="")){ <br />alert("?将最后一行数据填写完?后再增加新的??！"); <br />}else{ <br />var node= studentinfoNew.documentElement.childNodes(0).cloneNode(true); <br />xmldso.documentElement.appendChild(node); <br />} <br />} <br />} <br />//?除?? <br />function delID(whichFld){ <br />var doc=xmldso.XMLDocument; <br />var rootnode=doc.documentElement; <br />var sortNode = rootnode.selectNodes("//student"); <br />if(sortNode.length==1){ <br />alert("can not do delete when there is only 1 record"); <br />return; <br />} <br /><br />var sortNode = xmldso.selectSingleNode("//student/id[text()='"+whichFld+"']"); <br />try{ <br />sortNode.parentNode.parentNode.removeChild(sortNode.parentNode); <br />}catch(e){ <br />} <br />} <br />&lt;/SCRIPT&gt; <br /><br />&lt;center&gt;&lt;b&gt;student-studentlist&lt;/b&gt;&lt;br&gt;&lt;br&gt; <br />&lt;TABLE id="table" DATASRC='#xmldso' BORDER CELLPADDING=3&gt; <br />&lt;!--?行数据?定--&gt; <br />&lt;THEAD&gt;&lt;TH&gt;ID&lt;/TH&gt;&lt;TH&gt;id&lt;/TH&gt;&lt;TH&gt;name&lt;/TH&gt;&lt;TH&gt;age&lt;/TH&gt;&lt;/THEAD&gt; <br />&lt;TR&gt; <br />&lt;TD&gt;&lt;acronym title='点?即可?除???'&gt;&lt;INPUT TYPE=button size=4 DATAFLD="id" onclick="delID(this.value)"&gt;&lt;/acronym&gt;&lt;/TD&gt; <br />&lt;TD&gt;&lt;INPUT TYPE=TEXT DATAFLD="id"&gt;&lt;/TD&gt; <br />&lt;TD&gt;&lt;INPUT TYPE=TEXT DATAFLD="name"&gt;&lt;/TD&gt; <br />&lt;TD&gt;&lt;INPUT TYPE=TEXT DATAFLD="age"&gt;&lt;/TD&gt; <br />&lt;/TR&gt; <br />&lt;/TABLE&gt; <br />&lt;INPUT TYPE=BUTTON name=dd id=dd VALUE="add" onclick="addID();"&gt; <br />&lt;INPUT TYPE=BUTTON name=cc id=cc VALUE="save" onclick="save()"&gt; <br />&lt;INPUT TYPE=BUTTON name=ee id=ee VALUE="display" onclick="display()"&gt;&lt;/center&gt;&lt;/BODY&gt;&lt;/HTML&gt; <br /><br /><br />  <a onclick="return SetReplyAuhor(&quot;智者无疆&quot;)" href="/zhanglijun33/archive/2006/12/01/jswriteread.html#post">回复</a><a id="Comments1_CommentList_ctl01_DeleteLink" href="javascript:__doPostBack('Comments1$CommentList$ctl01$DeleteLink','')"></a>  <a id="Comments1_CommentList_ctl01_EditLink"></a><br /><br /></li><li class="morelistitem"><div class="moreinfotitle"><a title="permalink: re: Javascript-文件操作" href="/zhanglijun33/archive/2006/12/01/jswriteread.html#84823">#</a> <a name="84823"></a>re: Javascript-文件操作  <a id="Comments1_CommentList_ctl02_NameLink" target="_blank">self</a> Posted @ 2006-12-01 14:04 </div>当js不能创建文件对象时，可以在运行中运行regsvr32 scrrun.dll，来启用这个程序， <br />如果还不行，在ie的安全级别里设置中级即可。  <a onclick="return SetReplyAuhor(&quot;self&quot;)" href="/zhanglijun33/archive/2006/12/01/jswriteread.html#post">回复</a><a id="Comments1_CommentList_ctl02_DeleteLink" href="javascript:__doPostBack('Comments1$CommentList$ctl02$DeleteLink','')"></a>  <a id="Comments1_CommentList_ctl02_EditLink"></a><br /><br /></li><li class="morelistitem"><div class="moreinfotitle"><a title="permalink: re: Javascript-文件操作" href="/zhanglijun33/archive/2006/12/01/jswriteread.html#84874">#</a> <a name="84874"></a>re: Javascript-文件操作  <a id="Comments1_CommentList_ctl03_NameLink" target="_blank">self</a> Posted @ 2006-12-01 16:06 </div>下面是我写的一个js读写文件程序： <br />1.&lt;!-- &amp;copy;zhanglijun 2006-12-1 <br />任务：js创建文件，写入数据，并读出数据 <br />增加数据，修改数据，删除数据。 <br />--&gt; <br />&lt;html&gt; <br />&lt;head&gt; <br />&lt;title&gt;jsIO&lt;/title&gt; <br />&lt;/head&gt; <br />&lt;script type="text/javascript"src="fileIO.js" &gt;&lt;/script&gt; <br />&lt;body &gt;&lt;p align="center"&gt; <br />指定文件夹：&lt;input type="text"id="path"/&gt;&lt;br&gt; <br />文件名称： <br />&lt;input type=text id="name" /&gt;&lt;br&gt; <br />文件内容： <br />&lt;textarea id="content" width=20px height=35px&gt;&lt;/textarea&gt;&lt;br&gt; <br />&lt;input type=button value="创建" onclick="return createfile();"/&gt; <br />&lt;input type=button value="读数据" onclick="return readfile();"/&gt; <br />&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt; <br />请先在运行中运行regsvr32 scrrun.dll&lt;br&gt; <br />然后在ie的安全--&gt;自定义级别里--&gt;重置为--&gt;选择中级 <br />&lt;/p&gt; <br />&lt;/body&gt; <br />2 fileIO.js <br />/* <br />*js 文件读写模块 by zhanglijun 2006-12-1 <br />*/ <br /><br /><br />function createfile(){ <br />if(check()==false)return false; <br />var name=document.getElementById("name").value; <br />var name1=name.split("."); <br />if(name1[1]==undefined)name=name+".txt"; <br />//alert(name); <br />pathAndName=document.getElementById("path").value+name; <br />//alert(pathAndName); <br />var fso=new ActiveXObject("Scripting.FileSystemObject"); <br />var f1=fso.createTextFile(pathAndName); <br />if(!f1)alert("文件创建失败"); <br />else alert("文件成功创建，下面继续写入内容"); <br />f1.Write(document.getElementById("content").value); <br />if(f1.read()!="")alert("内容已经写入"); <br />f1.close(); <br />} <br /><br />function readfile(){ <br />if(checkRead()==false)return false; <br />var name=document.getElementById("name").value; <br />var name1=name.split("."); <br />if(name1[1]==undefined)name=name+".txt"; <br />//alert(name1[1]); <br />pathAndName=document.getElementById("path").value+name; <br />//alert(pathAndName); <br />var fso=new ActiveXObject("Scripting.FileSystemObject"); <br />var f2 <br />try{ <br />f2=fso.openTextFile(pathAndName); <br />}catch(e){alert(name+"没找到");} <br />var a=""; <br />while (!f2.AtEndOfStream){ <br />a += f2.ReadLine( );} <br />f2.Close( ); <br />content.innerHTML=a; <br />alert("它的位置在"+pathAndName); <br />} <br />function check(){ <br />if(document.getElementById("name").value==""||document.getElementById("content").value=="") <br />{alert("文件名和内容都不能为空！"); <br />document.getElementById("name").focus(); return false;} <br /><br />}function checkRead(){ <br />if(document.getElementById("name").value=="") <br />{alert("文件名和内容都不能为空！"); <br />document.getElementById("name").focus(); return false;} <br /><br />} <br />function changeSrc(filePicker) <br />{ <br />oFileChecker.src = filePicker.value; <br />} <br />&lt;/html&gt;  <a onclick="return SetReplyAuhor(&quot;self&quot;)" href="/zhanglijun33/archive/2006/12/01/jswriteread.html#post">回复</a><a id="Comments1_CommentList_ctl03_DeleteLink" href="javascript:__doPostBack('Comments1$CommentList$ctl03$DeleteLink','')"></a>  <a id="Comments1_CommentList_ctl03_EditLink"></a><br /><br /></li><li class="morelistitem"><div class="moreinfotitle"><a title="permalink: re: Javascript-文件操作" href="/zhanglijun33/archive/2006/12/01/jswriteread.html#84887">#</a> <a name="84887"></a>re: Javascript-文件操作<a name="Post"></a>  <a id="Comments1_CommentList_ctl04_NameLink" target="_blank">self</a> Posted @ 2006-12-01 16:40 </div>利用js fso对象写xml文件 <br />&lt;html&gt;&lt;head&gt; <br />&lt;title&gt;oprateXML&lt;/title&gt; <br />&lt;/head&gt; <br />&lt;script type="text/javascript"&gt; <br />&lt;!-- <br />function createXml(){ <br /><br />var fso, tempfolder, xmlfile, schar; <br />fso = new ActiveXObject("Scripting.FileSystemObject"); <br />xmlfile = fso.CreateTextFile("C:\\test2.XML",true,true); <br />schar = '\r'; <br />xmlfile.WriteLine('&lt;?xml version="1.0" encoding="UTF-16" ?&gt;'+schar); <br />xmlfile.WriteLine('&lt;document title="information"&gt;'+schar); <br />for(var i=0;i&lt;10;i++){ <br />xmlfile.WriteLine('&lt;xmlnode type="node" name="node'+i+'" /&gt;'+schar); <br />} <br />xmlfile.WriteLine('&lt;/document&gt;'); <br />xmlfile.Close(); <br />} <br />--&gt;&lt;/script&gt; <br />&lt;body&gt; <br />&lt;input type="button" value="写xml文件" onclick="createXml()"/&gt; <br />&lt;/body&gt; <br />&lt;/html&gt; <br />结果如下： <br />&lt;?xml version="1.0" encoding="UTF-16" ?&gt; <br />- &lt;document title="information"&gt; <br />&lt;xmlnode type="node" name="node0" /&gt; <br />&lt;xmlnode type="node" name="node1" /&gt; <br />&lt;xmlnode type="node" name="node2" /&gt; <br />&lt;xmlnode type="node" name="node3" /&gt; <br />&lt;xmlnode type="node" name="node4" /&gt; <br />&lt;xmlnode type="node" name="node5" /&gt; <br />&lt;xmlnode type="node" name="node6" /&gt; <br />&lt;xmlnode type="node" name="node7" /&gt; <br />&lt;xmlnode type="node" name="node8" /&gt; <br />&lt;xmlnode type="node" name="node9" /&gt; <br />&lt;/document&gt;  <a onclick="return SetReplyAuhor(&quot;self&quot;)" href="/zhanglijun33/archive/2006/12/01/jswriteread.html#post">回复</a><a id="Comments1_CommentList_ctl04_DeleteLink" href="javascript:__doPostBack('Comments1$CommentList$ctl04$DeleteLink','')"></a>  <a id="Comments1_CommentList_ctl04_EditLink"></a><br /></li></ul></div><img src ="http://www.blogjava.net/xuechen0721/aggbug/85257.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xuechen0721/" target="_blank">兵临城下</a> 2006-12-04 09:01 <a href="http://www.blogjava.net/xuechen0721/articles/85257.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>