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