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();
作者最新文章