1. 下面是对此知识的系统介绍(转自互联网):
  2. Javascript 是网页制作中离不开的脚本语言,依靠它,一个网页的内容才生动活泼、富有朝气。但也许你还没有发现并应用它的一些更高级的功能吧?比如,对文件和文件夹进 行读、写和删除,就象在VBVC等高级语言中经常做的工作一样。怎么样,你是否需要了解这方面的知识?那就请跟我来,本文将详细描述如何使用 Javascript语言进行文件操作。
  3. 一、功能实现核心:FileSystemObject 对象
  4. 其实,要在Javascript中实现文件操作功能,主要就是依靠FileSystemobject对象。在详细介绍FileSystemobject对象的各个属性和方法的使用细节前,先来看看这个对象包括哪些相关对象和集合:
  5. 二、FileSystemObject编程三部曲
  6. 使用FileSystemObject 对象进行编程很简单,一般要经过如下的步骤: 创建FileSystemObject对象、应用相关方法、访问对象相关属性
  7. (一)创建FileSystemObject对象
  8. 创建FileSystemObject对象的代码只要1行:
  9. var fso = new ActiveXObject("Scripting.FileSystemObject");
  10. 上述代码执行后,fso就成为一个FileSystemObject对象实例。
  11. (二)应用相关方法
  12. 创建对象实例后,就可以使用对象的相关方法了。比如,使用CreateTextFile方法创建一个文本文件:
  13. var fso = new ActiveXObject("Scripting.FileSystemObject");
  14. var f1 = fso.createtextfile("c:\\myjstest.txt",true");
  15. (三)访问对象相关属性
  16. 要访问对象的相关属性,首先要建立指向对象的句柄,这就要通过get系列方法实现:GetDrive负责获取驱动器信息,GetFolder负责获取文件夹信息,GetFile负责获取文件信息。比如,指向下面的代码后,f1就成为指向文件c:\test.txt的句柄:
  17. var fso = new ActiveXObject("Scripting.FileSystemObject");
  18. var f1 = fso.GetFile("c:\\myjstest.txt");
  19. 然后,使用f1访问对象的相关属性。比如:
  20. var fso = new ActiveXObject("Scripting.FileSystemObject");
  21. var f1 = fso.GetFile("c:\\myjstest.txt");
  22. alert("File last modified: " + f1.DateLastModified);
  23. 执行上面最后一句后,将显示c:\myjstest.txt的最后修改日期属性值。
  24. 但有一点请注意:对于使用create方法建立的对象,就不必再使用get方法获取对象句柄了,这时直接使用create方法建立的句柄名称就可以:
  25. var fso = new ActiveXObject("Scripting.FileSystemObject");
  26. var f1 = fso.createtextfile("c:\\myjstest.txt",true");
  27. alert("File last modified: " + f1.DateLastModified);
  28. 三、操作驱动器(Drives
  29. 使用FileSystemObject对象来编程操作驱动器(Drives)和文件夹(Folders)很容易,这就象在Windows文件浏览器中对文件进行交互操作一样,比如:拷贝、移动文件夹,获取文件夹的属性。
  30. (一)Drives对象属性
  31. Drive对象负责收集系统中的物理或逻辑驱动器资源内容,它具有如下属性:
  32. l TotalSize:以字节(byte)为单位计算的驱动器大小。
  33. l AvailableSpaceFreeSpace:以字节(byte)为单位计算的驱动器可用空间。
  34. l DriveLetter:驱动器字母。
  35. l DriveType:驱动器类型,取值为:removable(移动介质)、fixed(固定介质)、network(网络资源)、CD-ROM或者RAM盘。
  36. l SerialNumber:驱动器的系列码。
  37. l FileSystem:所在驱动器的文件系统类型,取值为FATFAT32NTFS
  38. l IsReady:驱动器是否可用。
  39. l ShareName:共享名称。
  40. l VolumeName:卷标名称。
  41. l PathRootFolder:驱动器的路径或者根目录名称。
  42. (二)Drive对象操作例程
  43. 下面的例程显示驱动器C的卷标、总容量和可用空间等信息:
  44. var fso, drv, s ="";
  45. fso = new ActiveXObject("Scripting.FileSystemObject");
  46. drv = fso.GetDrive(fso.GetDriveName("c:\"));
  47. s += "Drive C:" + " - ";
  48. s += drv.VolumeName + "\n";
  49. s += "Total Space: " + drv.TotalSize / ;
  50. s += " Kb" + "\n";
  51. s += "Free Space: " + drv.FreeSpace / ;
  52. s += " Kb" + "\n";
  53. alert(s);
  54. 执行后出现下面的信息框:
  55. 四、操作文件夹(Folders)
  56. 涉及到文件夹的操作包括创建、移动、删除以及获取相关属性。
  57. (一) Folder对象的相关属性和方法列表
  58. (二)Folder对象操作例程
  59. 下面的例程将练习获取父文件夹名称、创建文件夹、删除文件夹、判断是否为根目录等操作:
  60. var fso, fldr, s = "";
  61. // 创建FileSystemObject对象实例
  62. fso = new ActiveXObject("Scripting.FileSystemObject");
  63. // 获取Drive 对象
  64. fldr = fso.GetFolder("c:\");
  65. // 显示父目录名称
  66. alert("Parent folder name is: " + fldr + "\n");
  67. // 显示所在drive名称
  68. alert("Contained on drive " + fldr.Drive + "\n");
  69. // 判断是否为根目录
  70. if (fldr.IsRootFolder)
  71. alert("This is the root folder.");
  72. else
  73. alert("This folder isn't a root folder.");
  74. alert("\n\n");
  75. // 创建新文件夹
  76. fso.CreateFolder ("C:\\Bogus");
  77. alert("Created folder C:\\Bogus" + "\n");
  78. // 显示文件夹基础名称,不包含路径名
  79. alert("Basename = " + fso.GetBaseName("c:\\bogus") + "\n");
  80. // 删除创建的文件夹
  81. fso.DeleteFolder ("C:\\Bogus");
  82. alert("Deleted folder C:\\Bogus" + "\n");
  83. 五、操作文件(Files
  84. 对文件进行的操作要比以上介绍的驱动器(Drive)和文件夹(Folder)操作复杂些,基本上分为以下两个类别:对文件的创建、拷贝、移动、删除操作和对文件内容的创建、添加、删除和读取操作。下面分别详细介绍。
  85. (一)创建文件
  86. 一共有3种方法可用于创建一个空文本文件,这种文件有时候也叫做文本流(text stream)。
  87. 第一种是使用CreateTextFile方法。代码如下:
  88. var fso, f1;
  89. fso = new ActiveXObject("Scripting.FileSystemObject");
  90. f1 = fso.CreateTextFile("c:\\testfile.txt", true);
  91. 第二种是使用OpenTextFile方法,并添加上ForWriting属性,ForWriting的值为2。代码如下:
  92. var fso, ts;
  93. var ForWriting= ;
  94. fso = new ActiveXObject("Scripting.FileSystemObject");
  95. ts = fso.OpenTextFile("c:\\test.txt", ForWriting, true);
  96. `第三种是使用OpenAsTextStream方法,同样要设置好ForWriting属性。代码如下:
  97. var fso, f1, ts;
  98. var ForWriting = ;
  99. fso = new ActiveXObject("Scripting.FileSystemObject");
  100. fso.CreateTextFile ("c:\\test1.txt");
  101. `f1 = fso.GetFile("c:\\test1.txt");
  102. ts = f1.OpenAsTextStream(ForWriting, true);
  103. (二)添加数据到文件
  104. `当文件被创建后,一般要按照“打开文件->填写数据->关闭文件”的步骤实现添加数据到文件的目的。
  105. 打开文件可使用FileSystemObject对象的OpenTextFile方法,或者使用File对象的OpenAsTextStream方法。
  106. 填 写数据要使用到TextStream对象的Write、WriteLine或者WriteBlankLines方法。在同是实现写入数据的功能下,这3者 的区别在于:Write方法不在写入数据末尾添加新换行符,WriteLine方法要在最后添加一个新换行符,而WriteBlankLines则增加一 个或者多个空行。
  107. 关闭文件可使用TextStream对象的Close方法。
  108. (三)创建文件及添加数据例程
  109. 下面的代码将创建文件、添加数据、关闭文件几个步骤结合起来进行应用:
  110. var fso, tf;
  111. fso = new ActiveXObject("Scripting.FileSystemObject");
  112. // 创建新文件
  113. tf = fso.CreateTextFile("c:\\testfile.txt", true);
  114. // 填写数据,并增加换行符
  115. tf.WriteLine("Testing 1, 2, 3.") ;
  116. // 增加3个空行
  117. tf.WriteBlankLines() ;
  118. // 填写一行,不带换行符
  119. tf.Write ("This is a test.");
  120. // 关闭文件
  121. tf.Close();
  122. (四)读取文件内容
  123. 从 文本文件中读取数据要使用TextStream对象的Read、ReadLine或ReadAll 方法。Read方法用于读取文件中指定数量的字符;ReadLine方法读取一整行,但不包括换行符;ReadAll方法则读取文本文件的整个内容。读取 的内容存放于字符串变量中,用于显示、分析。在使用Read或ReadLine方法读取文件内容时,如果要跳过一些部分,就要用到Skip或 SkipLine方法。
  124. 下面的代码演示打开文件、填写数据,然后读取数据:
  125. var fso, f1, ts, s;
  126. var ForReading = ;
  127. fso = new ActiveXObject("Scripting.FileSystemObject");
  128. // 创建文件
  129. f1 = fso.CreateTextFile("c:\\testfile.txt", true);
  130. // 填写一行数据
  131. f1.WriteLine("Hello World");
  132. f1.WriteBlankLines();
  133. // 关闭文件
  134. f1.Close();
  135. // 打开文件
  136. ts = fso.OpenTextFile("c:\\testfile.txt", ForReading);
  137. // 读取文件一行内容到字符串
  138. s = ts.ReadLine();
  139. // 显示字符串信息
  140. alert("File contents = '" + s + "'");
  141. // 关闭文件
  142. ts.Close();
  143. (五)移动、拷贝和删除文件
  144. 对 于以上三种文件操作,Javascript各有两种对应的方法:File.Move 或 FileSystemObject.MoveFile用于移动文件;File.Copy 或 FileSystemObject.CopyFile用于拷贝文件;File.Delete 或 FileSystemObject.DeleteFile用于删除文件。
  145. 下面的代码演示在驱动器C的根目录下创建一个文本文件,填写一些内容,然后将文件移动到\tmp目录下,再在目录\temp下面建立一个文件拷贝,最后删除这两个目录的文件:
  146. var fso, f1, f2, s;
  147. fso = new ActiveXObject("Scripting.FileSystemObject");
  148. f1 = fso.CreateTextFile("c:\\testfile.txt", true);
  149. // 写一行
  150. f1.Write("This is a test.");
  151. // 关闭文件
  152. f1.Close();
  153. // 获取C:\根目录下的文件句柄
  154. f2 = fso.GetFile("c:\\testfile.txt");
  155. // 移动文件到\tmp目录下
  156. f2.Move ("c:\\tmp\\testfile.txt");
  157. // 拷贝文件到\temp目录下
  158. f2.Copy ("c:\\temp\\testfile.txt");
  159. // 获取文件句柄
  160. f2 = fso.GetFile("c:\\tmp\\testfile.txt");
  161. f3 = fso.GetFile("c:\\temp\\testfile.txt");
  162. // 删除文件
  163. f2.Delete();
  164. f3.Delete();
  165. 六、结 语
  166. 通 过以上对FileSystemObject的各种对象、属性和方法的介绍和示例,相信你已经对如何使用JavaScript语言在页面中操作驱动器、文件 和文件夹有了清晰的认识。但是上述提及的例程都非常简单,要全面、灵活地掌握JavaScript文件操作技术,还需要大量的实践练习。而且还有一点提醒 大家,由于涉及到在浏览器中进行文件读写这样的高级操作,对于默认的浏览器安全级别而

js创建、写入、读取文件(转)的更多相关文章

  1. node.js03 第一个node.js程序和读取文件

    Hello World 1.创建运行 创建txt文件起名为hellonode,在记事本中编写JavaScript脚本文件 例如: var bbl = 'hellonode' console.log(b ...

  2. 解决node.js使用fs读取文件出错

      今天配接口,使用fs模块读取json出现了错误'no such file or directory',然后经查终于解决,特此记录. 使用nodejs的fs模块读取文件时习惯用相对路径,但是运行的时 ...

  3. C# 创建 写入 读取 excel

    public static void CreateExcelFile(string FileName, List<UUser> luu) { ] == "xlsx")/ ...

  4. 在类文件中创建 写入Json文件

    由于业务需要 今天写了一个方法能够定时更新Json文件 即定时从数据库中查询数据 然后转化为Json对象 如果有数据的话 删掉之前的Json文件 重新创建一个文件 然后写入Json对象 中间走了很多弯 ...

  5. 在浏览器端用JS创建和下载文件

    前端很多项目中,都有文件下载的需求,特别是JS生成文件内容,然后让浏览器执行下载操作(例如在线图片编辑.在线代码编辑.iPresst等). 但受限于浏览器,很多情况下我们都只能给出个链接,让用户点击打 ...

  6. js创建并下载文件

    先上代码: function createAndDownloadFile(fileName, content) { var aTag = document.createElement('a'); va ...

  7. HTML5 文件域+FileReader 分段读取文件并上传到服务器(六)

    说明:使用Ajax方式上传,文件不能过大,最好小于三四百兆,因为过多的连续Ajax请求会使后台崩溃,获取InputStream中数据会为空,尤其在Google浏览器测试过程中. 1.简单分段读取文件为 ...

  8. Node.js——fs模块(文件系统),创建、删除目录(文件),读取写入文件流

    /* 1. fs.stat 检测是文件还是目录(目录 文件是否存在) 2. fs.mkdir 创建目录 (创建之前先判断是否存在) 3. fs.writeFile 写入文件(文件不存在就创建,但不能创 ...

  9. Java 创建文件夹和文件,字符串写入文件,读取文件

    两个函数如下: TextToFile(..)函数:将字符串写入给定文本文件: createDir(..)函数:创建一个文件夹,有判别是否存在的功能. public void TextToFile(fi ...

随机推荐

  1. JavaSE学习总结(十八)—— 多线程

    多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术.具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能.具有这种能力的系 ...

  2. <!--more-->搭建的博客设置主页内容高度

    用 markdown写文章时插入<!--more-->,文章会自动从插入的位置截断,也就是说在博客中只显示<!--more-->之前的内容,点击阅读全文之后会显示所有内容.

  3. Linux记录-分区(df/fdisk/mount/umount/fuser)

    1.查看磁盘挂载(df -TH) 2.卸载umount /dev/vdb1 3.查杀用户进程(fuser -m -v -i -k /dev/vdb1) 4.再次卸载umount /dev/vdb1,并 ...

  4. bzoj千题计划305:bzoj2565: 最长双回文串(回文自动机)

    https://www.lydsy.com/JudgeOnline/problem.php?id=2565 正着构造回文自动机 倒过来再构造一个回文自动机 分别求出以位置i开始的和结尾的最长回文串 # ...

  5. 转--python 黑魔法2

    Python 高效编程小技巧 个人博客:临风|刀背藏身 Python 一直被我拿来写算法题,小程序,因为他使用起来太方便了,各种niubi闪闪的技能点也在写算法的过程中逐渐被挖掘到,感谢万能的谷哥度娘 ...

  6. centos 重启日志服务

    因为/var/log/message日志太多了,遂手贱删掉了这个文件,新建messages,发现没有日志写入 正确清空日志的方法 cat /dev/null > /var/log/boot.lo ...

  7. 在Eclipse中利用maven整合搭建ssm框架

    首先说明用到的框架: spring  +  springMVC  +  mybatis 构建工具:maven 开发工具:eclipse 开发环境:win10      java版本:jdk1.8    ...

  8. 阿里云服务器安装SQLServer本地无法远程访问

    新买的阿里云服务器,安装上sqlserver2012,本机连接测试没有问题,但是回到本地,使用ip远程连接报错. 尝试了网上各种办法,都是失败.最后找到原因,原来在阿里云的控制台上有设置: 首先进入安 ...

  9. ado.net 访问excel

    1 类:OleDbConnection ... 2 connection string : Provider=Microsoft.ACE.OLEDB.12.0;Data Source={excelPa ...

  10. c# 匿名函数

    int t(){    Func<int> m=()=>3;    return m()+m();}