您现在的位置: 万盛学电脑网 >> 程序编程 >> 脚本专题 >> javascript >> 正文

javascript 系统文件夹文件操作

作者:佚名    责任编辑:admin    更新时间:2022-06-22

  前期在.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();