javascript 操作檔案 實現方法小結

來源:互聯網
上載者:User

可以通過瀏覽器在訪問者的硬碟上建立檔案,因為我開始試了一下真的可以,不信你把下面這段代碼COPY到一個HTML檔案當中再運行一下! 複製代碼 代碼如下:<script language="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
fso.DeleteFile("c:\\autoexec.bat", true); //請注意啊!把autoexec.bat改為你C盤中的其它檔案名稱,你不改也可以!先把autoexec.bat備份啊!
-->
</script>

是不是發現你C盤的Autoexec.bat檔案不見呢?呵呵其實當那個檔案運行時IE會提醒你當前使用的ActiveX控制項不安全,詢問你是否運行,但由於你和我一樣迫切想試試究竟效果如何,因此你會毫不猶疑的按下 [確定] .... 其實這是使用了FileSystemObject來實現的,要瞭解更詳細的用法與例子的話,點這裡下載 JScript的中文說明文檔 或者買本 <<深入學習:JavaScript開發與執行個體>> 也可以看看無憂指令碼整理的例子,讓大家學習學習. 讓我們先來看看有什麼屬性與函數可用,後面會對部分函數做些小例子
方法或者屬性 描述
BuildPath()
產生一個檔案路徑 複製代碼 代碼如下:CopyFile() 複製檔案
CopyFolder() 複製目錄
CreateFolder() 建立新目錄
CreateTextFile() 產生一個檔案
DeleteFile() 刪除一個檔案
DeleteFolder() 刪除一個目錄
DriveExists() 檢驗盤符是否存在
Drives 返回盤符的集合
FileExists() 檢驗檔案是否存在
FolderExists 檢驗一個目錄是否存在
GetAbsolutePathName() 取得一個檔案的絕對路徑
GetBaseName() 取得檔案名稱
GetDrive() 取得盤符名
GetDriveName() 取得盤符名
GetExtensionName() 取得檔案的尾碼
GetFile() 組建檔案對象
GetFileName() 取得檔案名稱
GetFolder() 取得目錄對象
GetParentFolderName 取得檔案或目錄的父目錄名
GetSpecialFolder() 取得特殊的目錄名
GetTempName() 產生一個臨時檔案對象
MoveFile() 移動檔案
MoveFolder() 移動目錄
OpenTextFile()

開啟一個檔案流執行個體說明BuildPath(路徑,檔案名稱) //這個方法會對給定的路徑加上檔案,並自動加上分界符 複製代碼 代碼如下:<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
var newpath = fso.BuildPath("c:\\tmp", "51js.txt"); //產生 c:\tmp\51js.txt的路徑
alert(newpath);
-->
</SCRIPT>

CopyFile(源檔案, 目標檔案, 覆蓋) //複製源檔案到目標檔案,當覆蓋值為true時,如果目標檔案存在會把檔案覆蓋 複製代碼 代碼如下:<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
var newpath = fso.CopyFile("c:\\autoexec.bat", "d:\\autoexec.bak");
-->
</SCRIPT>

CopyFolder(對象目錄,目標目錄 ,覆蓋) //複製對象目錄到目標目錄,當覆蓋為true時,如果目標目錄存在會把檔案覆蓋 複製代碼 代碼如下:<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFolder("c:\\WINDOWS\\Desktop", "d:\\"); //把C盤的Desktop目錄複寫到D盤的根目錄
-->
</SCRIPT>

CreateFolder(目錄名) //建立一個新的目錄 複製代碼 代碼如下:<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
var newFolderName = fso.CreateFolder("c:\\51JS"); //在C盤上建立一個51JS的目錄
-->
</SCRIPT>

CreateTextFile(檔案名稱, 覆蓋) //建立一個新的檔案,如果此檔案已經存在,你需要把覆蓋值定為true 複製代碼 代碼如下:<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
var newFileObject = fso.CreateTextFile("c:\\autoexec51JS.bat", true); //指令碼將在C盤建立一個叫 autoexec51JS.bat的檔案
-->
</SCRIPT>

DeleteFile(檔案名稱, 唯讀?) //刪除一個檔案,如果檔案的屬性是唯讀話,你需要把唯讀值設為true 複製代碼 代碼如下:<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject"); //為了安全我先把要刪除的autoexec.bat備份到你的D盤
var newpath = fso.CopyFile("c:\\autoexec.bat", "d:\\autoexec.bat"); //把C盤的autoexec.bat檔案刪除掉
fso.DeleteFile("c:\\autoexec.bat", true);
-->
</SCRIPT>

DeleteFolder(檔案名稱, 唯讀?)//刪除一個目錄,如果目錄的屬性是唯讀話,你需要把唯讀值設為true 複製代碼 代碼如下:<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFolder("c:\\WINDOWS\\Desktop", "d:\\"); //為了安全我先把你C盤的Desktop目錄複寫到你D盤的根目錄
fso.DeleteFolder("c:\\WINDOWS\\Desktop", true); //把你的Desktop目錄刪除,但因為desktop是系統的東西,所以不能全部刪除,但.........
-->
</SCRIPT>

DriveExists(盤符) //檢查一個盤是否存在,如果存在就返會真,不存在就返回....... 複製代碼 代碼如下:<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
hasDriveD = fso.DriveExists("d"); //檢查系統是否有D盤存在
hasDriveZ = fso.DriveExists("z"); //檢查系統是否有Z盤存在
if (hasDriveD) alert("你的系統內有一個D盤");
if (!hasDriveZ) alert("你的系統內沒有Z盤");
-->
</SCRIPT>

FileExists(檔案名稱) //檢查一個檔案是否存在,如果存在就返會真,不存在就返回....... 複製代碼 代碼如下:<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
fileName = fso.FileExists("c:\\autoexec.bat");
if (fileName) alert("你在C盤中有autoexec.bat檔案,按下確定後這個檔案將被刪除!"); //開個玩笑:)
-->
</SCRIPT>

FolderExists(目錄名) //檢查一個目錄是否存在,如果存在就返會真,不存在就返回....... 複製代碼 代碼如下:<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
folderName = fso.FolderExists("c:\\WINDOWS\\Fonts");
if (folderName) alert("按下確定後系統的字型檔將被刪除!"); //開個玩笑:)
-->
</SCRIPT>

GetAbsolutePathName(檔案對象) //返迴文件對象在系統的絕對路徑 複製代碼 代碼如下:<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
pathName = fso.GetAbsolutePathName("c:\\autoexec.bat");
alert(pathName);
-->
</SCRIPT>

GetBaseName(檔案對象) //返迴文件對象的檔案名稱 複製代碼 代碼如下:<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
baseName = fso.GetBaseName("c:\\autoexec.bat"); //取得autoexec.bat的檔案名稱autoexec
alert(baseName);
-->
</SCRIPT>

GetExtensionName(檔案對象) //檔案的尾碼 複製代碼 代碼如下:<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
exName = fso.GetExtensionName("c:\\autoexec.bat"); //取得autoexec.bat尾碼bat
alert(exName);
-->
</SCRIPT>

GetParentFolderName(檔案對象) //取得父級的目錄名 複製代碼 代碼如下:<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
parentName = fso.GetParentFolderName("c:\\autoexec.bat"); //取得autoexec.bat的父級目錄C盤
alert(parentName);
-->
</SCRIPT>

GetSpecialFolder(目錄代碼) //取得系統中一些特別的目錄的路徑,目錄代碼有3個分別是 0:安裝Window的目錄 1:系統檔案目錄 2:臨時檔案目錄 複製代碼 代碼如下:<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
tmpFolder = fso.GetSpecialFolder(2); //取得系統臨時檔案目錄的路徑如我的是 C:\windows\temp
alert(tmpFolder);
-->
</SCRIPT>

GetTempName() //產生一個隨機的臨時檔案對象,會以rad帶頭後面跟著些隨機數,就好象一些軟體在安裝時會產生*.tmp 複製代碼 代碼如下:<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
tmpName = fso.GetTempName(); //我在測試時就產生了radDB70E.tmp
alert(tmpName);
-->
</SCRIPT>

MoveFile(源檔案, 目標檔案) //把源檔案移到目標檔案的位置
<SCRIPT LANGUAGE="JavaScript">
<!--
var fso = new ActiveXObject("Scripting.FileSystemObject");
var newpath = fso.MoveFile("c:\\autoexec.bat", "d:\\autoexec.bat"); //把C盤的autoexec.bat檔案移移動到D盤
-->
</SCRIPT>To Be Continue! 還有幾個屬性沒寫例子,遲點就有了,是否覺得每次都會問你是否運行很麻煩?或者........,想知道如何不用詢問就運行?(不要用指令碼來破壞別人的系統啊!)
用JavaScript操作檔案系統建立捷徑 複製代碼 代碼如下:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>用JavaScript建立捷徑</TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<script language="javascript">
function createLink(){
var fso = new ActiveXObject("Scripting.FileSystemObject");
var shell = new ActiveXObject("WScript.Shell");
var tagFolder = "c:\\link";
if(!fso.FolderExists(tagFolder ))
{
fso.CreateFolder(tagFolder);
alert("Create success!");
}
if(!fso.FileExists(tagFolder + "\\eip.lnk"))
{
var link = shell.CreateShortcut(tagFolder + "\\eip.lnk");
link.Description = "開啟一個程式的捷徑";
link.TargetPath = "C:\\Program Files\\FlashFXP\\flashfxp.exe";
link.WindowStyle = 3;
link.WorkingDirectory = "C:\\Program Files\\FlashFXP";
link.Save();
}
}
</script>
<BODY>
<input type="button" value="click me" onclick="createLink();"/>
</BODY>
</HTML>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.