发布于2026-07-23 阅读(0)
扫一扫,手机访问
在网页开发里,Ja vaScript 可以说是不可或缺的脚本语言,它让网页内容变得生动、有活力。不过,你可能还没发现它的一些更高级的用法——比如,像在 VB、VC 等高级语言里那样,直接在浏览器中对文件进行读、写、删除操作。是不是有点意思?接下来,我们就来详细说说怎么用 Ja vaScript 实现文件操作。
其实,要在 Ja vaScript 中实现文件操作功能,主要就是依靠 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);
用 FileSystemObject 操作驱动器和文件夹非常直观,就像在 Windows 文件管理器里操作一样——拷贝、移动、获取属性,都能搞定。
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);
文件夹的操作包括创建、移动、删除以及获取属性。
(此处省略属性方法列表,原文中列表内容无变动,完整保留。)
下面的代码演示了获取父文件夹名称、创建文件夹、删除文件夹、判断是否为根目录等操作:
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");
对文件的操作比驱动器和文件夹稍微复杂一些,主要分为两类:一是文件的创建、拷贝、移动、删除;二是文件内容的创建、添加、删除和读取。下面分别来看。
有三种方法可以创建一个空文本文件(也叫文本流)。
第一种:使用 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.OpenTextFile 或 File.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 对象的 Read、ReadLine 或 ReadAll 方法。Read 读取指定数量的字符;ReadLine 读取一整行(不含换行符);ReadAll 读取整个文件内容。读取结果存到字符串变量中,供后续分析或显示。如果想跳过部分内容,可以用 Skip 或 SkipLine 方法。
下面演示打开文件、填写数据,再读取数据的过程:
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.Move 或 FileSystemObject.MoveFile 用于移动;File.Copy 或 FileSystemObject.CopyFile 用于拷贝;File.Delete 或 FileSystemObject.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 操作驱动器、文件夹和文件有了清晰的了解。不过,上面这些例子都相对简单,要想真正灵活掌握,还得靠大量实践。另外需要提醒的是,因为涉及浏览器里的文件读写这种高级操作,浏览器默认的安全级别会在代码运行前弹出一个提示信息,实际使用时要注意这一点。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8