前期在.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
必選項。為FileSystemObject 的名稱。
create
可選項。 。中的任一種:
常見值描述
ForReading 1 以串口方式開啟檔案。寫入
格式參數可以是以下設定中的任一種:
值描述
TristateTrue 以Unicode 格式開啟檔案。
TristateFalse 以ASCII 格式開啟檔案。檔案
*/
//讀取檔案
function readFile(filename){
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile(檔名,1);
var s = "";
while (!f.AtEndOfStream)
s = f.ReadLine() "n";
f.Close();
返回;
}
//寫入檔案
function writeFile(檔案名稱,檔案內容){
var fso, f, s ;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile(檔名,8,true);
f.WriteLine(文件內容);
f.Close();
//alert('好的');
WScript.Echo("寫入成功");
}
//刪除檔案
function deleteFile(filename,filecontent){
var fso, f, s ;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(檔案名稱);
f.Delete();
//alert('好的');
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)為單位計算的磁碟機可用空間。 (固定媒體)、網路(網路資源)、CD-ROM或RAM磁碟。
l SerialNumber:磁碟機的系列碼。
l IsReady:驅動器是否可用。
l ShareName:共享名稱。
l VolumeName:卷標名稱。
l Path和RootFolder:磁碟機的路徑或根目錄名稱。
*/
function getDriveinfo()
{
var fso, drv, s ="";
fso = new ActiveXObject("Scripting.FileSystemObject");
drv = fso>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();