簡體   English   中英

Javascript:復制目錄,不包括內部文件夾/文件

[英]Javascript: copy a directory, excluding internal folders/files

我意識到JavaScript通常不用於復制文件夾或文件,但是我使用的是用JavaScript編寫的wsf文件,只能在我的本地系統上使用。

我將對問題進行簡化的解釋:我有一個文件夾C:/Program Files/Folder ,其中包含三個文件File1,File2和File3。 我只想復制File1和File2,因為File3對我來說是不必要的,並且正在被另一個無法殺死的進程使用。 (實際上,我有一個包含數百個文件的文件夾,除了一個或兩個以外,我想復制所有這些文件。)除了初始化每個文件並對每個文件執行fso.fileCopy() ,還有某種方法可以復制整個文件夾,不包括File3? 某種排除列表?

我有的:

var fso = new ActiveXObject("Scripting.FileSystemObject");

var originalFolder = fso.GetFolder("C:\\Program Files\\Folder");
originalFolder.Copy("D:\\Program Files\\Folder");

這將導致崩潰,因為進程正在使用File3。 我不想做

var file1 = fso.getFile("C:\\Program Files\\Folder\\File1");
file1.Copy("D:\\Program Files\\Folder\\File1");
var file2 = fso.getFile("C:\\Program Files\\Folder\\File2");
file2.Copy("D:\\Program Files\\Folder\\File2");

用於數百個文件。

我對腳本編寫非常陌生,因此甚至不確定是否可以在JavaScript中執行類似的操作。

Javascript支持try { ... } catch (exception) { ... }塊。 雖然我強烈建議使用一種更適合這種本地腳本執行任務的語言(Perl,Ruby,Python等),但也可以將文件包裝。try(catch)塊中的copy(Copy)調用,catch使用中的文件的異常,然后繼續進行而不會導致整個崩潰。

有關Java語言try-catch塊的更多信息,請參見此處

可以使用Node.js(可能還有其他JS框架,但是我只使用Node,所以我不了解其他框架)

var fs = require('fs');
fs.createReadStream('test.log').pipe(fs.createWriteStream('newLog.log'));
I am very new to scripting, so I'm not even sure if it's possible to do something like this in javascript.

不是。 如果javascript可以做到這一點,那么每次您上網時,您的計算機上就會有100億個包含垃圾郵件的文件復制到您的文件系統。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM