商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > javascript读取本地文件和目录方法的几种方法实现

javascript读取本地文件和目录方法的几种方法实现

  发布于2026-07-23 阅读(0)

扫一扫,手机访问

在网页开发里,Ja vaScript 可以说是不可或缺的脚本语言,它让网页内容变得生动、有活力。不过,你可能还没发现它的一些更高级的用法——比如,像在 VB、VC 等高级语言里那样,直接在浏览器中对文件进行读、写、删除操作。是不是有点意思?接下来,我们就来详细说说怎么用 Ja vaScript 实现文件操作。

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

其实,要在 Ja vaScript 中实现文件操作功能,主要就是依靠 FileSystemObject 对象。在详细介绍这个对象的各个属性和方法的使用细节前,先来看看它到底包含哪些相关对象和集合。

二、FileSystemObject 编程三部曲

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

(一) 创建 FileSystemObject 对象

创建对象的代码只要一行:

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 方法获取句柄了,直接使用创建时得到的句柄即可:

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

三、操作驱动器 (Drives)

FileSystemObject 操作驱动器和文件夹非常直观,就像在 Windows 文件管理器里操作一样——拷贝、移动、获取属性,都能搞定。

(一) Drives 对象属性

Drive 对象负责收集系统中的物理或逻辑驱动器资源,它有这么几个属性:

  • TotalSize:以字节为单位的驱动器总大小。
  • A vailableSpaceFreeSpace:驱动器可用空间(字节)。
  • DriveLetter:驱动器字母。
  • DriveType:驱动器类型,取值包括 removable(移动介质)、fixed(固定介质)、network(网络资源)、CD-ROM 或 RAM 盘。
  • SerialNumber:系列码。
  • FileSystem:文件系统类型,比如 FAT、FAT32 或 NTFS。
  • IsReady:驱动器是否可用。
  • ShareName:共享名称。
  • VolumeName:卷标名称。
  • PathRootFolder:驱动器的路径或根目录名称。

(二) Drive 对象操作例程

下面这个例子会显示驱动器 C 的卷标、总容量和可用空间:

var fso, drv, s = "";
fso = new ActiveXObject("Scripting.FileSystemObject");
drv = fso.GetDrive(fso.GetDriveName("c://"));
s += "Drive C:" + " - ";
s += drv.VolumeName + "/n";
s += "Total Space: " + drv.TotalSize / 1024;
s += " Kb" + "/n";
s += "Free Space: " + drv.FreeSpace / 1024;
s += " Kb" + "/n";
alert(s);

四、操作文件夹 (Folders)

文件夹的操作包括创建、移动、删除以及获取属性。

(一) Folder 对象的相关属性和方法列表

(此处省略属性方法列表,原文中列表内容无变动,完整保留。)

(二) Folder 对象操作例程

下面的代码演示了获取父文件夹名称、创建文件夹、删除文件夹、判断是否为根目录等操作:

var fso, fldr, s = "";
fso = new ActiveXObject("Scripting.FileSystemObject");
fldr = fso.GetFolder("c://");
alert("Parent folder name is: " + fldr + "/n");
alert("Contained on drive " + fldr.Drive + "/n");
if (fldr.IsRootFolder)
    alert("This is the root folder.");
else
    alert("This folder isn't a root folder.");
alert("/n/n");
fso.CreateFolder("C://Bogus");
alert("Created folder C://Bogus" + "/n");
alert("Basename = " + fso.GetBaseName("c://bogus") + "/n");
fso.DeleteFolder("C://Bogus");
alert("Deleted folder C://Bogus" + "/n");

五、操作文件 (Files)

对文件的操作比驱动器和文件夹稍微复杂一些,主要分为两类:一是文件的创建、拷贝、移动、删除;二是文件内容的创建、添加、删除和读取。下面分别来看。

(一) 创建文件

有三种方法可以创建一个空文本文件(也叫文本流)。

第一种:使用 CreateTextFile 方法。

var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c://testfile.txt", true);

第二种:使用 OpenTextFile 方法,并设置 ForWriting 属性(值为 2)。

var fso, ts;
var ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
ts = fso.OpenTextFile("c://test.txt", ForWriting, true);

第三种:使用 OpenAsTextStream 方法,同样要设置 ForWriting

var fso, f1, ts;
var ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CreateTextFile("c://test1.txt");
f1 = fso.GetFile("c://test1.txt");
ts = f1.OpenAsTextStream(ForWriting, true);

(二) 添加数据到文件

文件创建后,一般按照“打开文件→填写数据→关闭文件”的步骤来添加内容。打开文件可以用 FileSystemObject.OpenTextFileFile.OpenAsTextStream。填写数据则用到 TextStream 对象的三个方法:Write(不添加换行符)、WriteLine(最后加换行符)、WriteBlankLines(增加一个或多个空行)。关闭文件用 Close 方法。

(三) 创建文件及添加数据例程

下面这段代码把创建文件、添加数据、关闭文件合在一起演示:

var fso, tf;
fso = new ActiveXObject("Scripting.FileSystemObject");
tf = fso.CreateTextFile("c://testfile.txt", true);
tf.WriteLine("Testing 1, 2, 3.");
tf.WriteBlankLines(3);
tf.Write("This is a test.");
tf.Close();

(四) 读取文件内容

读取文本文件要用 TextStream 对象的 ReadReadLineReadAll 方法。Read 读取指定数量的字符;ReadLine 读取一整行(不含换行符);ReadAll 读取整个文件内容。读取结果存到字符串变量中,供后续分析或显示。如果想跳过部分内容,可以用 SkipSkipLine 方法。

下面演示打开文件、填写数据,再读取数据的过程:

var fso, f1, ts, s;
var ForReading = 1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c://testfile.txt", true);
f1.WriteLine("Hello World");
f1.WriteBlankLines(1);
f1.Close();
ts = fso.OpenTextFile("c://testfile.txt", ForReading);
s = ts.ReadLine();
alert("File contents = '" + s + "'");
ts.Close();

(五) 移动、拷贝和删除文件

这三种操作各有两种方法:File.MoveFileSystemObject.MoveFile 用于移动;File.CopyFileSystemObject.CopyFile 用于拷贝;File.DeleteFileSystemObject.DeleteFile 用于删除。

下面这个例子在 C 盘根目录下创建一个文本文件,写点内容,然后移到 /tmp 目录,再拷贝到 /temp 目录,最后删除这两个文件:

var fso, f1, f2, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c://testfile.txt", true);
f1.Write("This is a test.");
f1.Close();
f2 = fso.GetFile("c://testfile.txt");
f2.Move("c://tmp//testfile.txt");
f2.Copy("c://temp//testfile.txt");
f2 = fso.GetFile("c://tmp//testfile.txt");
f3 = fso.GetFile("c://temp//testfile.txt");
f2.Delete();
f3.Delete();

六、结 语

通过以上对 FileSystemObject 各种对象、属性和方法的介绍和示例,相信你已经对如何用 Ja vaScript 操作驱动器、文件夹和文件有了清晰的了解。不过,上面这些例子都相对简单,要想真正灵活掌握,还得靠大量实践。另外需要提醒的是,因为涉及浏览器里的文件读写这种高级操作,浏览器默认的安全级别会在代码运行前弹出一个提示信息,实际使用时要注意这一点。

本文转载于:https://www.jb51.net/javascript/355757851.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注