導航:首頁 > 編程語言 > js拆分文件夾

js拆分文件夾

發布時間:2023-09-17 13:02:45

js點擊選擇文件目錄的功能

最近做一個小項目,前端需要有一個功能是點擊某按鈕時,彈出文件選擇的框,然後獲取目錄並寫入對應的輸入框里,以往是選擇某個文件進行上傳,功能看起來有些像,但這次不同的是只能選擇某個目錄而不是文件,因為它並不是上傳,它只是為了選擇後台生成的文件保存的路徑。

於是網上查解決方案,查到兩種,

一種是僅在谷歌瀏覽器上有效的方式,在input節點里加一個屬性 webkitdirectory,就可以實現點擊彈出選擇目錄的功能,然後就可以截取目錄,此種方式對非空文件夾是可以的實現的,只需監聽此input的change事件即可,但如果選擇的是空文件夾,就不會觸發事件,就無法獲取路徑,所以這方法不復合我的需求。

另一種是只適用於IE瀏覽器的方式,即調用IE的activeX控制項,為點擊按鈕綁定事件,然後就可以獲取目錄,然後到目錄調到想要的地方即可,具體實現方式是:

<input id="show">

<button onclick="clickBtn()">點擊</button>

function click() {

    try {

        var Message = "\u8bf7\u9009\u62e9\u6587\u4ef6\u5939"; //選擇框提示                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('show').value = Folder;

            return Folder;

        }

    } catch (e) {  alert(e.message); }

}

但些方式也有一個問題是,此控制項是默認關閉的,需要用戶手動啟用,並且要把本站點加入可信任站點才行,具體設置過程是:

1. 單擊菜單工具->Internet選項->安全->受信任站點->站點->把此網站設為可信站點

2. 在自定義級別->對沒有標記為安全的ActiveX控制項進行初始化和腳本運行"----"啟用"

❷ 網頁js代碼路徑修改問題,急急急!!!

直接用你本機地址就行,不過一般測試的時候都是把素材放在你要顯示的html同級的文件夾下

比如你這個html為index.html,那麼你 要把xxx.jpg和xxx.htm放到index.html的文件夾下。就可以直接用了
roll_pic_ary[0].push("xxx.jpg";);
要是不在一個文件夾下就要加路徑了,一層一層加
比如
roll_pic_ary[0].push("123/456/xxx.jpg";); 這樣
這里要注意,用"/"而不是"\"

❸ js代碼是放在一個大文件好還是分成幾個文件好

在項目開發中,一般是文件載入路徑越少越好,所以很多時候都是在項目開發中文件有很多個,但是在項目發布的時候,打包整合到一個文件當中,當然你自己想分開引用或者不必要打包的第三方路徑除外,整合工具可以用gulp或者webpack都可以

❹ 如何用JS 獲取本地文件夾的文件列表

一、功能實現核心:FileSystemObject 對象
要在java-script中實現文件操作功能,主要就是依靠FileSystemobject對象。
二、FileSystemObject編程
使用FileSystemObject 對象進行編程很簡單,一般要經過如下的步驟: 創建FileSystemObject對象、應用相關方法、訪問對象相關屬性 。
(一)創建FileSystemObject對象
創建FileSystemObject對象的
代碼只要1行:
var fso = new ActiveXObject("Scripting.FileSystemObject");
上述代碼執行後,fso就成為一個FileSystemObject對象實例。
(二)應用相關方法
創建對象實例後,就可以使用對象的相關方法了。比如,使用CreateTextFile方法創建一個文本文件:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f1 = fso.createtextfile("c:\\myjstest.txt",true");
(三)訪問對象相關屬性
要訪問對象的相關屬性,首先要建立指向對象的句柄,這就要通過get系列方法實現:GetDrive負責獲取驅動器信息,GetFolder負責獲取文件夾信息,GetFile負責獲取文件信息。比如,指向下面的代碼後,f1就成為指向文件c:\test.txt的句柄:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f1 = fso.GetFile("c:\\myjstest.txt");
然後,使用f1訪問對象的相關屬性。比如:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f1 = fso.GetFile("c:\\myjstest.txt");
alert("File last modified: " + f1.DateLastModified);
執行上面最後一句後,將顯示c:\myjstest.txt的最後修改日期屬性值。
但有一點請注意:對於使用create方法建立的對象,就不必再使用get方法獲取對象句柄了,這時直接使用create方法建立的句柄名稱就可以:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f1 = fso.createtextfile("c:\\myjstest.txt",true");
alert("File last modified: " + f1.DateLastModified);
三、操作驅動器(Drives)
使用FileSystemObject對象來編程操作驅動器(Drives)和文件夾(Folders)很容易,這就象在Windows文件瀏覽器中對文件進行交互操作一樣,比如:拷貝、移動文件夾,獲取文件夾的屬性。
(一)Drives對象屬性
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:驅動器的路徑或者根目錄名稱。
(二)Drive對象操作常式
下面的常式顯示驅動器C的卷標、總容量和可用空間等信息:
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)
涉及到文件夾的操作包括創建、移動、刪除以及獲取相關屬性。
Folder對象操作常式 :
下面的常式將練習獲取父文件夾名稱、創建文件夾、刪除文件夾、判斷是否為根目錄等操作:
var fso, fldr, s = "";
// 創建FileSystemObject對象實例
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");
// 創建新文件夾
fso.CreateFolder ("C:\\Bogus");
alert("Created folder C:\\Bogus" + "\n");
// 顯示文件夾基礎名稱,不包含路徑名
alert("Basename = " + fso.GetBaseName("c:\\bogus") + "\n");
// 刪除創建的文件夾
fso.DeleteFolder ("C:\\Bogus");
alert("Deleted folder C:\\Bogus" + "\n");
五、操作文件(Files)
對文件進行的操作要比以上介紹的驅動器(Drive)和文件夾(Folder)操作復雜些,基本上分為以下兩個類別:對文件的創建、拷貝、移動、刪除操作和對文件內容的創建、添加、刪除和讀取操作。下面分別詳細介紹。
(一)創建文件
一共有3種方法可用於創建一個空文本文件,這種文件有時候也叫做文本流(text stream)。
第一種是使用CreateTextFile方法。代碼如下:
var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\\testfile.txt", true);
第二種是使用OpenTextFile方法,並添加上ForWriting屬性,ForWriting的值為2。代碼如下:
var fso, ts;
var ForWriting= 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
ts = fso.OpenTextFile("c:\\test.txt", ForWriting, true);
第三種是使用OpenAsTextStream方法,同樣要設置好ForWriting屬性。代碼如下:
var fso, f1, ts;
var ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CreateTextFile ("c:\\test1.txt");
f1 = fso.GetFile("c:\\test1.txt");
ts = f1.OpenAsTextStream(ForWriting, true);
(二)添加數據到文件
當文件被創建後,一般要按照「打開文件->填寫數據->關閉文件」的步驟實現添加數據到文件的目的。
打開文件可使用FileSystemObject對象的OpenTextFile方法,或者使用File對象的OpenAsTextStream方法。
填寫數據要使用到TextStream對象的Write、WriteLine或者WriteBlankLines方法。在同是實現寫入數據的功能下,這3者的區別在於:Write方法不在寫入數據末尾添加新換行符,WriteLine方法要在最後添加一個新換行符,而WriteBlankLines則增加一個或者多個空行。
關閉文件可使用TextStream對象的Close方法。
(三)創建文件及添加數據常式
下面的代碼將創建文件、添加數據、關閉文件幾個步驟結合起來進行應用:
var fso, tf;
fso = new ActiveXObject("Scripting.FileSystemObject");
// 創建新文件
tf = fso.CreateTextFile("c:\\testfile.txt", true);
// 填寫數據,並增加換行符
tf.WriteLine("Testing 1, 2, 3.") ;
// 增加3個空行
tf.WriteBlankLines(3) ;
// 填寫一行,不帶換行符
tf.Write ("This is a test.");
// 關閉文件
tf.Close();
(四)讀取文件內容
從文本文件中讀取數據要使用TextStream對象的Read、ReadLine或ReadAll 方法。Read方法用於讀取文件中指定數量的字元; ReadLine方法讀取一整行,但不包括換行符;ReadAll方法則讀取文本文件的整個內容。讀取的內容存放於字元串變數中,用於顯示、分析。

方法或者屬性 描述
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() 打開一個文件流

f.Files //目錄下所有文件集合
f.attributes //文件屬性
Case 0 Str="普通文件。沒有設置任何屬性。 "
Case 1 Str="只讀文件。可讀寫。 "
Case 2 Str="隱藏文件。可讀寫。 "
Case 4 Str="系統文件。可讀寫。 "
Case 16 Str="文件夾或目錄。只讀。 "
Case 32 Str="上次備份後已更改的文件。可讀寫。 "
Case 1024 Str="鏈接或快捷方式。只讀。 "
Case 2048 Str=" 壓縮文件。只讀。"
f.Datecreated // 創建時間
f.DateLastAccessed //上次訪問時間
f.DateLastModified // 上次修改時間
f.Path //文件路徑
f.Name //文件名稱
f.Type //文件類型
f.Size // 文件大小(單位:位元組)
f.ParentFolder //父目錄
f.RootFolder // 根目錄

❺ 如何用javascript操作本地文件

js被設計為沙箱式語言,理論上講是不應該去訪問本地文件系統的。
但是網上有訪問本地文回件的操作,是通過答ActiveXObject。但是這種寫法綁架了瀏覽器,跟IE綁死,所以建議你如果可以的話,最好不要存類似心思,而是通過其他後台邏輯傳送文件內容。

閱讀全文

與js拆分文件夾相關的資料

熱點內容
蘋果edge怎麼刪除下載文件 瀏覽:471
sas邏輯回歸代碼 瀏覽:572
用於keil下的stc器件資料庫 瀏覽:400
新聞網站後台如何操作前台 瀏覽:539
在剪映app中怎麼查看視頻尺寸 瀏覽:9
linux文件成分包括 瀏覽:886
文件轉換免費的軟體 瀏覽:644
linuxwpsxlsx 瀏覽:482
小米手機怎麼上移動網路連接失敗怎麼辦 瀏覽:598
win10系統打開java 瀏覽:479
全日制編程什麼意思 瀏覽:447
筆記本創建區域網怎麼傳文件 瀏覽:871
怎樣查看id密碼 瀏覽:647
贛州極客晨星少兒編程怎麼樣 瀏覽:690
覺醒年代哪個app可以免費觀看 瀏覽:830
如何關閉win10觸摸屏幕 瀏覽:761
蘋果142不能傳文件 瀏覽:128
如何看歷史底部數據 瀏覽:230
怎麼在電腦上下軟體或安裝app 瀏覽:798
qq頭像電影截圖情侶 瀏覽:87

友情鏈接