JS操作文件夹、文件:创建、写入、读取、追加、移动、复制、删除

目录

 

背景

环境

正文

API

总结

参考文章

链接


背景

js是第一个我掌握的编程语言,所以经常用它来做一些比较简单实用的东西,比如加密记事本。为什么不直接用自带的记事本呢?因为自带的记事本记得文字都是明文,特容易被有心人看到,所以就自己找一个加密算法做一个网页记事本,通过操作后自动加密文本,这样即使有心人去看,也不会看出来。

因为记事本得做一个保存的功能,所以通过搜索,发现js可以实现这一功能,也就免去了使用其他语言的麻烦。以下是我从其他博客总结出来的内容。目的是方便你我他,对你有帮助的话点个赞再走。

 

环境

Windows系统,IE浏览器

 

正文

ActiveX是微软的东西,故而这玩意儿只有IE才支持!

javaScript中利用ActiveXObject来创建FileSystemObject操作文件

一、功能实现核心:FileSystemObject 对象

要在javascript中实现文件操作功能,主要就是依靠FileSystemobject对象。

二、FileSystemObject编程

使用FileSystemObject 对象进行编程很简单,一般要经过如下的步骤: 创建FileSystemObject对象、应用相关方法、访问对象相关属性 。

(一)创建FileSystemObject对象

创建FileSystemObject对象的代码只要1行:
var fso = new ActiveXObject("Scripting.FileSystemObject");
上述代码执行后,fso就成为一个FileSystemObject对象实例。

(二)应用相关方法

创建对象实例后,就可以使用对象的相关方法了。比如,使用CreateTextFile方法创建一个文本文件:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f1 = fso.createtextfile("c:\\myjstest.txt",true");
(三)访问对象相关属性
要访问对象的相关属性,首先要建立指向对象的句柄,这就要通过get系列方法实现:GetDrive负责获取驱动器信息,GetFolder负责获取文件夹信息,GetFile负责获取文件信息。比如,指向下面的代码后,f1就成为指向文件c:\test.txt的句柄:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f1 = fso.GetFile("c:\\myjstest.txt");
然后,使用f1访问对象的相关属性。比如:


var fso = new ActiveXObject("Scripting.FileSystemObject");
var f1 = fso.GetFile("c:\\myjstest.txt");
alert("File last modified: " + f1.DateLastModified);

 

执行上面最后一句后,将显示c:\myjstest.txt的最后修改日期属性值。
但有一点请注意:对于使用create方法建立的对象,就不必再使用get方法获取对象句柄了,这时直接使用create方法建立的句柄名称就可以:


var fso = new ActiveXObject("Scripting.FileSystemObject");
var f1 = fso.createtextfile("c:\\myjstest.txt",true");
alert("File last modified: " + f1.DateLastModified);

API

构造方法
ActiveXObject('Scripting.FileSystemObject') 仅IE浏览器支持该对象
方法摘要
  CreateFolder(string path) 按照路径创建文件夹,支持一级目录
Boolean FolderExists(string path) 判断路径下的文件夹是否存在
Object GetFolder(string path) 取得目录对象
Object CreateTextFile(string path,int i,boolean b)

在path路径下创建文件;

i代表的是文件的权限:只读=1,只写=2 ,追加=8 等权限。(ForReading 、 ForWriting 或 ForAppending;

b为true代表新建,false相反。

Object OpenTextFile(string path,int i,boolean b) 同上
Boolean FileExists(string path) 判断路径下的文件是否存在
  CopyFile(string source,string destination) 将source路径文件复制到destination路径下的文件去
  MoveFile(string source,string destination) 将source路径文件移动到destination路径下的文件去
  DeleteFile(string source,Boolean b) 删除source路径文件,b为true确认删除
以下方法没有测试过,贴出api供参考
  CopyFolder(string source,string destination) 复制目录  
  DeleteFolder 删除一个目录  
  GetAbsolutePathName(string path) 取得一个文件的绝对路径
  GetBaseName() 取得文件名
  GetDrive() 取得盘符名  
  GetDriveName() 取得盘符名
  MoveFolder(string source,string destination)  
构造方法
Object 通过方法OpenTextFile(string path,int i,boolean b)获取文件流对象
方法摘要
 

Read(int i)

用于读取文件中指定数量的字符
 

ReadLine()

读取一整行,但不包括换行符
 

ReadAll()

则读取文本文件的整个内容
  close() 关闭文件流
构造方法  
Object 通过方法CreateTextFile(string path,int i,boolean b)、GetFile(string path)、OpenAsTextStream(ForWriting, true)获取文件对象

方法摘要

  Write(string txt)

不在写入数据末尾添加新换行符

  WriteLine(string txt)

要在最后添加一个新换行符

 

WriteBlankLines(string txt)

增加一个或者多个空行
 

close()

关闭文件流
构造方法
文件夹、文件Object 通过GetFolder(string path)、GetFile(string path)方法获得
方法摘要
  Move(string path) 移动文件夹、文件到path路径下
  Copy(string path) 复制文件夹、文件到path路径下
  Delete() 删除该对象的文件夹、文件
  GetExtensionName() 取得文件的后缀 
  GetFileName()   取得文件名
  GetSpecialFolder()   取得特殊的目录名
  GetFileName() 取得文件名 
  GetTempName() 生成一个临时文件对象
  BuildPath() 生成一个文件路径  
  GetParentFolderName,静态字段 取得文件或目录的父目录名 
  Files,静态字段 返回目录下所有文件集合
  attributes,静态字段 返回文件属性
  Datecreated,静态字段 返回文件夹、文件创建时间
  DateLastAccessed,静态字段 返回上次访问时间
  DateLastModified,静态字段 返回上次修改时间
  Path,静态字段 返回文件路径
  Name,静态字段 返回文件名称
  Type,静态字段 返回文件类型
  Size,静态字段 返回文件大小
  ParentFolder,静态字段 返回父目录
  RootFolder,静态字段 返回根目录

 

构造方法
object 通过GetDrive(GetDriveName(path))获得驱动器盘符对象
方法摘要    
  DriveExists() 检验盘符是否存在  
  Drives   返回盘符的集合

总结

本人只用到了文件夹和文件的新建、写入、删除、移动、复制这些功能;如有其他需求请参照个文档;以下是我的功能实现效果图,有兴趣的可以去下方分享链接下载。

 

参考文章

https://www.cnblogs.com/zengxh/p/12390257.html

https://www.jb51.net/article/48538.htm

https://www.jb51.net/article/46712.htm

https://www.jb51.net/article/49867.htm

https://blog.csdn.net/qq_42192693/article/details/82313010

https://www.jb51.net/article/70613.htm

https://developer.mozilla.org/zh-CN/docs/Archive/Web/JavaScript/Microsoft_Extensions/ActiveXObject

 

链接

以上的文件已经分享至网盘,需要测试的自行下载;

链接:https://pan.baidu.com/s/1lUWJbDKtC7DkYgFKUN_uwQ 
提取码:eijh

你可能感兴趣的:(JavaScript,javascript,js脚本,文件创建,写入,删除)