一、功能實(shí)現(xiàn)核心:FileSystemObject 對象 要在java-script中實(shí)現(xiàn)文件操作功能,主要就是依靠FileSystemobject對象。
二、FileSystemObject編程 使用FileSystemObject 對象進(jìn)行編程很簡單,一般要經(jīng)過如下的步驟: 創(chuàng)建FileSystemObject對象、應(yīng)用相關(guān)方法、訪問對象相關(guān)屬性 。 (一)創(chuàng)建FileSystemObject對象 創(chuàng)建FileSystemObject對象的 代碼只要1行: var fso = new ActiveXObject("Scripting.FileSystemObject"); 上述代碼執(zhí)行后,fso就成為一個(gè)FileSystemObject對象實(shí)例。
(二)應(yīng)用相關(guān)方法 創(chuàng)建對象實(shí)例后,就可以使用對象的相關(guān)方法了。比如,使用CreateTextFile方法創(chuàng)建一個(gè)文本文件: var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.createtextfile("c:\\myjstest.txt",true"); (三)訪問對象相關(guān)屬性 要訪問對象的相關(guān)屬性,首先要建立指向?qū)ο蟮木浔?,這就要通過get系列方法實(shí)現(xiàn):GetDrive負(fù)責(zé)獲取驅(qū)動器信息,GetFolder負(fù)責(zé)獲取文件夾信息,GetFile負(fù)責(zé)獲取文件信息。
比如,指向下面的代碼后,f1就成為指向文件c:\test.txt的句柄: var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.GetFile("c:\\myjstest.txt"); 然后,使用f1訪問對象的相關(guān)屬性。比如: var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.GetFile("c:\\myjstest.txt"); alert("File last modified: " + f1.DateLastModified); 執(zhí)行上面最后一句后,將顯示c:\myjstest.txt的最后修改日期屬性值。
但有一點(diǎn)請注意:對于使用create方法建立的對象,就不必再使用get方法獲取對象句柄了,這時(shí)直接使用create方法建立的句柄名稱就可以: var fso = new ActiveXObject("Scripting.FileSystemObject"); var f1 = fso.createtextfile("c:\\myjstest.txt",true"); alert("File last modified: " + f1.DateLastModified); 三、操作驅(qū)動器(Drives) 使用FileSystemObject對象來編程操作驅(qū)動器(Drives)和文件夾(Folders)很容易,這就象在Windows文件瀏覽器中對文件進(jìn)行交互操作一樣,比如:拷貝、移動文件夾,獲取文件夾的屬性。 (一)Drives對象屬性 Drive對象負(fù)責(zé)收集系統(tǒng)中的物理或邏輯驅(qū)動器資源內(nèi)容,它具有如下屬性: l TotalSize:以字節(jié)(byte)為單位計(jì)算的驅(qū)動器大小。
l AvailableSpace或FreeSpace:以字節(jié)(byte)為單位計(jì)算的驅(qū)動器可用空間。 l DriveLetter:驅(qū)動器字母。
l DriveType:驅(qū)動器類型,取值為:removable(移動介質(zhì))、fixed(固定介質(zhì))、network(網(wǎng)絡(luò)資源)、CD-ROM或者RAM盤。 l SerialNumber:驅(qū)動器的系列碼。
l FileSystem:所在驅(qū)動器的文件系統(tǒng)類型,取值為FAT、FAT32和NTFS。 l IsReady:驅(qū)動器是否可用。
l ShareName:共享名稱。 l VolumeName:卷標(biāo)名稱。
l Path和RootFolder:驅(qū)動器的路徑或者根目錄名稱。 (二)Drive對象操作例程 下面的例程顯示驅(qū)動器C的卷標(biāo)、總?cè)萘亢涂捎每臻g等信息: 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"; alert(s); 四、操作文件夾(Folders) 涉及到文件夾的操作包括創(chuàng)建、移動、刪除以及獲取相關(guān)屬性。
Folder對象操作例程 : 下面的例程將練習(xí)獲取父文件夾名稱、創(chuàng)建文件夾、刪除文件夾、判斷是否為根目錄等操作: var fso, fldr, s = ""; // 創(chuàng)建FileSystemObject對象實(shí)例 fso = new ActiveXObject("Scripting.FileSystemObject"); // 獲取Drive 對象 fldr = fso.GetFolder("c:\\"); // 顯示父目錄名稱 alert("Parent folder name is: " + fldr + "\n"); // 顯示所在drive名稱 alert("Contained on drive " + fldr.Drive + "\n"); // 判斷是否為根目錄 if (fldr.IsRootFolder) alert("This is the root folder."); else alert("This folder isn't a root folder."); alert("\n\n"); // 創(chuàng)建新文件夾 fso.CreateFolder ("C:\\Bogus"); alert("Created folder C:\\Bogus" + "\n"); // 顯示文件夾基礎(chǔ)名稱,不包含路徑名 alert("Basename = " + fso.GetBaseName("c:\\bogus") + "\n"); // 刪除創(chuàng)建的文件夾 fso.DeleteFolder ("C:\\Bogus"); alert("Deleted folder C:\\Bogus" + "\n"); 五、操作文件(Files) 對文件進(jìn)行的操作要比以上介紹的驅(qū)動器(Drive)和文件夾(Folder)操作復(fù)雜些,基本上分為以下兩個(gè)類別:對文件的創(chuàng)建、拷貝、移動、刪除操作和對文件內(nèi)容的創(chuàng)建、添加、刪除和讀取操作。下面分別詳細(xì)介紹。
(一)創(chuàng)建文件 一共有3種方法可用于創(chuàng)建一個(gè)空文本文件,這種文件有時(shí)候也叫做文本流(text stream)。 第一種是使用CreateTextFile方法。
代碼如下: var fso, f1; fso = new ActiveXObject("Scripting.FileSystemObject"); f1 = fso.CreateTextFile("c:\\testfile.txt", true); 第二種是使用OpenTextFile方法,并添加上ForWriting屬性,F(xiàn)orWriting的值為2。代碼如下: var fso, ts; var 。
<script type="text/javascript">
/*
FileExists(filepath)是驗(yàn)證文件是否存在的方法,filepath是文件路徑
OpenTextFile,第二個(gè)參數(shù)有三種方式,都是常量:
ForReading=1 以只讀方式打開文件。 不能寫這個(gè)文件。
ForWriting=2 以寫方式打開文件
ForAppending= 8 打開文件并從文件末尾開始寫。
*/
var oFso,oFile,sFile,sContent;
sFile = "c:\\luckty.txt";
//寫文件
oFso = new ActiveXObject("Scripting.FileSystemObject");
oFile = oFso.OpenTextFile(sFile,2,true); //寫方式打開
oFile.WriteLine("菩提本無樹,明鏡亦非臺,本來無一物,何處惹塵埃!");
oFile.Close();
//讀文件
oFile = oFso.OpenTextFile(sFile,1); //只讀方式打開
sContent = oFile.ReadLine();
oFile.Close();
document.write(sFile + "文件內(nèi)容為:<br/><br/>" + sContent);
</script>
</head>
function browseFolder(path) { try { var Message = "請選擇文件夾"; //選擇框提示信息 var Shell = new ActiveXObject("Shell.Application"); var Folder = Shell.BrowseForFolder(0, Message, 64, 17);//起始目錄為:我的電腦 //var Folder = Shell.BrowseForFolder(0,Message,0); //起始目錄為:桌面 if (Folder != null) { Folder = Folder.items(); // 返回 FolderItems 對象 Folder = Folder.item(); // 返回 Folderitem 對象 Folder = Folder.Path; // 返回路徑 if (Folder.charAt(Folder.length - 1) != "\\") { Folder = Folder + "\\"; } document.getElementById(path).value = Folder; return Folder; } } catch (e) { alert(e.message); }} 使用的時(shí)候:
瀏覽器需要權(quán)限,即數(shù)字簽名認(rèn)證。
無法獲取本地文件的絕對路徑,這里涉及到一個(gè)瀏覽器安全問題。
// 選擇文件 function changefile () { var e = this; // 修正ie8下,文件上傳異常 var files = e.files; if (files == undefined) { return false; } // 取得選擇文件相關(guān)數(shù)據(jù)信息 var file = files[0], filename = file.name, filesize = file.size; // 獲取文件后綴名 var filetype = filename.substr(filename.lastindexof(".")).tolowercase(); }。
試試這樣可不可行
<script src="/uploads/shbk/1.js" type="text/javascript"></script>
<script type="text/javascript">
var aaa1=aaa;
</script>
<script src="/uploads/shbk/2.js" type="text/javascript"></script>;如果調(diào)用1.js的aaa時(shí)則用aaa1();
調(diào)用2.js的aaa時(shí)用aaa();
js獲取元素方法有:
1、getElementById :根據(jù)指定的 id 屬性值得到對象。返回 id 屬性值等于 sID 的第一個(gè)對象的引用。假如對應(yīng)的為一組對象,則返回該組對象中的第一個(gè)。
2、getElementsByName:getElementsByName(name)該方法與 getElementById() 方法相似,但是它查詢元素的 name 屬性,而不是 id 屬性。
另外,因?yàn)橐粋€(gè)文檔中的 name 屬性可能不唯一(如 HTML 表單中的單選按鈕通常具有相同的 name 屬性),所以getElementsByName() 方法返回的是所有匹配元素組成的數(shù)組,而不是一個(gè)元素。
3、getElementsByTagName:getElementsByTagName() 方法會使用指定的標(biāo)簽名返回所有的元素(作為一個(gè)節(jié)點(diǎn)列表),這些元素是您在使用此方法時(shí)所處的元素的后代。
getElementsByTagName() 可被用于任何的 HTML 元素
如果把特殊字符串 "*" 傳遞給 getElementsByTagName() 方法,它將返回文檔中所有元素的列表,元素排列的順序就是它們在文檔中的順序。
傳遞給 getElementsByTagName() 方法的字符串可以不區(qū)分大小寫。
其一,沒有使用任用的輔助擴(kuò)展庫
var1 = document.getElementById ("那個(gè)testbox的ID");//獲取該textbox對象
var test = var1.value; //取得其值
//test 就是你想要的值了
其二,使用輔助擴(kuò)展庫,如jquery.js, 不過你得先引用這份擴(kuò)展文件
如:<script type="text/javascript" src="/uploads/shbk/jquery.js"></script>
var test = $("#testbox的ID").val();
//test 就是你想要的值了
聲明:本網(wǎng)站尊重并保護(hù)知識產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請?jiān)谝粋€(gè)月內(nèi)通知我們,我們會及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時(shí)間:2.985秒