当前位置:

首页 > 编程开发 > javascript读取本地文件和目录方法的几种方法实现

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

JavaScript通过FileSystemObject对象实现文件操作,涵盖创建、读写、移动、拷贝、删除文件及操作驱动器和文件夹。使用ActiveXObject创建实例并调用方法,但需注意浏览器安全限制。

在网页开发里,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 vailableSpace 或 FreeSpace:驱动器可用空间(字节)。
  • DriveLetter:驱动器字母。
  • DriveType:驱动器类型,取值包括 removable(移动介质)、fixed(固定介质)、network(网络资源)、CD-ROM 或 RAM 盘。
  • SerialNumber:系列码。
  • FileSystem:文件系统类型,比如 FAT、FAT32 或 NTFS。
  • IsReady:驱动器是否可用。
  • ShareName:共享名称。
  • VolumeName:卷标名称。
  • Path 和 RootFolder:驱动器的路径或根目录名称。

(二) 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.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 操作驱动器、文件夹和文件有了清晰的了解。不过,上面这些例子都相对简单,要想真正灵活掌握,还得靠大量实践。另外需要提醒的是,因为涉及浏览器里的文件读写这种高级操作,浏览器默认的安全级别会在代码运行前弹出一个提示信息,实际使用时要注意这一点。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发
相关文章 更多
c语言段错误处理方法及排查解决步骤
c语言段错误处理方法及排查解决步骤

针对C语言常见的段错误(Segmentation fault)问题,详细剖析内存非法访问根因,提供结合GDB、Core Dump与AddressSanitizer的标准化排查解决步骤与预防方法。

windsurf开发工具安装与使用详细教程
windsurf开发工具安装与使用详细教程

本文提供全面的Windsurf开发工具安装与使用详细教程,覆盖客户端下载安装、环境配置与VS Code插件迁移、Cascade核心协作中枢使用技巧、Chat与Write双模式实战及高效开发规范。

Flutter状态管理框架有哪些?常用框架选择指南
Flutter状态管理框架有哪些?常用框架选择指南

全面盘点Flutter主流状态管理框架,深度解析Provider、Riverpod、Bloc与GetX的核心机制、优缺点及适用场景,提供系统化的状态管理选型指南。

Java抽象方法修饰符限制:为何不能用private或static
Java抽象方法修饰符限制:为何不能用private或static

深入剖析Java中抽象方法为何严禁使用private和static修饰符。从面向对象契约规范、方法继承重写、JVM动态绑定(invokevirtual)与静态解析(invokestatic)等底层机制展开详细推导,结合编译报错示例与全景对比,彻底理清修饰符限制背后的设计逻辑。

tomcat启动失败的原因和解决办法详解
tomcat启动失败的原因和解决办法详解

详细分析 Tomcat 启动失败的常见原因,并提供可操作的排查和解决方案。

uniapp网络请求拦截怎么设置及配置方法
uniapp网络请求拦截怎么设置及配置方法

详细讲解uni-app中网络请求拦截的配置方法与实现路径,包含uni.addInterceptor原生API拦截与Promise二次封装方案、Token注入、全局错误处理及踩坑提醒。

Vibe Island中文设置详细操作教程
Vibe Island中文设置详细操作教程

Vibe Island支持独立于macOS系统的语言设置。本文详解如何在Settings > General中将界面切换为简体中文,并验证Agent会话、审批按钮等核心功能的中文显示效果。

maven配置镜像和仓库区别及正确配置方法
maven配置镜像和仓库区别及正确配置方法

详细介绍 Maven 配置镜像与仓库的区别以及正确的配置步骤,帮助读者快速掌握实践操作。

langgraph python guide中文入门教程详解
langgraph python guide中文入门教程详解

本篇LangGraph Python中文入门教程详解,系统梳理StateGraph状态机定义、节点编写、边与条件路由、检查点持久化(MemorySaver)等核心机制,提供从环境安装到完整循环智能体构建的代码示例与实操指导。

laravel创建项目步骤详解及命令教程
laravel创建项目步骤详解及命令教程

详解使用Composer与Laravel安装器创建Laravel项目的完整步骤、核心命令及环境配置,包含目录权限、环境文件与常见报错排查。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
IntelliJ IDEA macOS版
IntelliJ IDEA macOS版
Mac

IntelliJ IDEA 是 JetBrains 推出的专业集成开发环境,重点服务于 Java、Kotlin 与 JVM 项目开发。软件集成代码补全、静态检查、重构、调试、测试、版本控制及构建工具,并可借助插件扩展语言和框架支持。

PyCharm macOS版
PyCharm macOS版
Mac

JetBrains PyCharm 是面向 Python 开发者的集成开发环境,提供智能补全、代码检查、重构、调试、测试、版本控制及虚拟环境管理功能。Mac 版兼容 Intel 与 Apple 芯片,核心功能可免费使用。

WebStorm macOS版
WebStorm macOS版
Mac

JetBrains WebStorm 是面向 JavaScript、TypeScript 和现代 Web 技术的专业集成开发环境,可智能理解项目结构,提供代码补全、重构、错误检查、运行调试、测试及 Git 工具。

WINDOWS 更多
IntelliJ IDEA Windows版
IntelliJ IDEA Windows版
Windows

JetBrains IntelliJ IDEA 是以 Java、Kotlin 和 JVM 项目为核心的专业集成开发环境,提供智能补全、代码检查、安全重构、调试、测试、版本控制及构建工具集成。统一发行版的核心功能可免费用于商业和非商业项目,

PhpStorm Windows版
PhpStorm Windows版
Windows

PhpStorm 是 JetBrains 面向 PHP 与现代 Web 开发打造的专业集成开发环境,提供代码补全、静态检查、重构、调试、测试、数据库、版本控制及前端语言支持。Windows 用户可直接下载安装程序,

PyCharm Windows版
PyCharm Windows版
Windows

PyCharm 是 JetBrains 推出的 Python 集成开发环境,提供智能代码补全、错误检查、重构、调试、测试、Git、终端及 Jupyter Notebook 支持。统一版安装后可体验 30 天 Pro 功能,