JavaScript 系统文件夹文件操作及参数介绍
作者:拾光时间:2026-10-26 23:07:48浏览:136
本文介绍如何使用 JavaScript 的 ActiveXObject 进行系统文件夹与文件操作。涵盖递归遍历子文件夹、列出当前目录文件、读取与写入文本文件、删除指定文件及批量删除等功能,并详细解析 OpenTextFile 方法的参数设置与 Drive 对象属性,提供完整代码示例供参考。
JavaScript 系统文件夹文件操作及参数介绍
此前在 .NET 环境下实现系统操作功能往往较为复杂,令人意外的是,使用 JavaScript 实现相同功能却显得十分简便。基于这一发现,我在网络上搜索相关代码并进行了相应的改进与优化。
具体实现代码如下:
function PathList(path) {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fldr = fso.GetFolder(path);
var fd = new Enumerator(fldr.SubFolders);
for (; !fd.atEnd(); fd.moveNext()) {
sd = fd.item();
WScript.Echo(sd.path);
//写入文件
writeFile("a.text",sd.path);
//document.write(sd.path);
PathList(sd.path);
}
}
function FileList(path) {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fldr = fso.GetFolder(path);
var fd = new Enumerator(fldr.SubFolders);
for (; !fd.atEnd(); fd.moveNext()) {
sd = fd.item();
var fc = new Enumerator(sd.files);
for (; !fc.atEnd(); fc.moveNext())
{
WScript.Echo(fc.item());
writeFile("B.text",fc.item());
}
WScript.Echo(sd.path);
//写入文件
writeFile("a.text",sd.path);
//document.write(sd.path);
FileList(sd.path);
}
}
//当前目录文件
function CurFileList(path) {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fldr = fso.GetFolder(path);
var fc = new Enumerator(fldr.files);
for (; !fc.atEnd(); fc.moveNext())
{
WScript.Echo(fc.item());
writeFile("c.text",fc.item());
}
}
/*
object.OpenTextFile(filename[, iomode[, create[, format]]])
参数
object
必选项。object 应为 FileSystemObject 的名称。
filename
必选项。指明要打开文件的字符串表达式。
iomode
可选项。可以是三个常数之一:ForReading 、 ForWriting 或 ForAppending 。
create
可选项。Boolean 值,指明当指定的 filename 不存在时是否创建新文件。如果创建新文件则值为 True ,如果不创建则为 False 。如果忽略,则不创建新文件。
format
可选项。使用三态值中的一个来指明打开文件的格式。如果忽略,那么文件将以 ASCII 格式打开。
设置
iomode 参数可以是下列设置中的任一种:
常数 值 描述
ForReading 1 以只读方式打开文件。不能写这个文件。
ForWriting 2 以写方式打开文件
ForAppending 8 打开文件并从文件末尾开始写。
format 参数可以是下列设置中的任一种:
值 描述
TristateTrue 以 Unicode 格式打开文件。
TristateFalse 以 ASCII 格式打开文件。
TristateUseDefault 使用系统默认值打开文件。
*/
//读文件
function readFile(filename){
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile(filename,1);
var s = "";
while (!f.AtEndOfStream)
s += f.ReadLine()+"\n";
f.Close();
return s;
}
//写文件
function writeFile(filename,filecontent){
var fso, f, s ;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile(filename,8,true);
f.WriteLine(filecontent);
f.Close();
//alert('ok');
WScript.Echo("写入成功");
}
//删除文件
function deleteFile(filename,filecontent){
var fso, f, s ;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filename);
f.Delete();
//alert('ok');
WScript.Echo("删除成功");
}
//批量删除,未删除文件夹,删除不了当前目录文件
function DelFileList(path) {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fldr = fso.GetFolder(path);
var fd = new Enumerator(fldr.SubFolders);
for (; !fd.atEnd(); fd.moveNext()) {
sd = fd.item();
var fc = new Enumerator(sd.files);
for (; !fc.atEnd(); fc.moveNext())
{
WScript.Echo(fc.item());
writeFile("B.text",fc.item());
fc.item().Delete();
WScript.Echo("删除成功");
}
WScript.Echo(sd.path);
//写入文件
writeFile("a.text",sd.path);
writeFile("a.text","删除完毕");
//document.write(sd.path);
DelFileList(sd.path);
}
}
//删除当前目录文件
function CurDelFileList(path) {
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fldr = fso.GetFolder(path);
var fc = new Enumerator(fldr.files);
for (; !fc.atEnd(); fc.moveNext())
{
WScript.Echo(fc.item());
writeFile("c.text",fc.item());
fc.item().Delete();
writeFile("c.text","删除成功");
}
}
/*
Drive对象负责收集系统中的物理或逻辑驱动器资源内容,它具有如下属性:
l TotalSize:以字节(byte)为单位计算的驱动器大小。
l AvailableSpace或FreeSpace:以字节(byte)为单位计算的驱动器可用空间。
l DriveLetter:驱动器字母。
l DriveType:驱动器类型,取值为:removable(移动介质)、fixed(固定介质)、network(网络资源)、CD-ROM或者RAM盘。
l SerialNumber:驱动器的系列码。
l FileSystem:所在驱动器的文件系统类型,取值为FAT、FAT32和NTFS。
l IsReady:驱动器是否可用。
l ShareName:共享名称。
l VolumeName:卷标名称。
l Path和RootFolder:驱动器的路径或者根目录名称。
*/
function getDriveinfo()
{
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";
WScript.Echo(s);
}
CurFileList("D:\web_01");
FileList("D:\web_01");
getDriveinfo();作者最新文章
JS处理含Emoji或中文的字符串转数组乱码问题
2026-11-05 16:12:28
JS怎么使用展开运算符合并对象
2026-11-05 14:42:18
ES6+环境下判断JS对象为空的简洁写法
2026-11-05 12:12:23
怎么通过replacer函数自定义JS中JSON的格式化输出
2026-11-05 11:19:44
JS正则表达式基础:字面量与RegExp构造函数的区别及常用元字符
2026-11-05 11:16:58
