我想创建一个计算目录中文件的函数。 如果有5个文件,请将最旧的文件移动到另一个目录。
我找到了一个代码sample,但它不符合我的情况。
var myFileList = Folder("C:/Test").getFiles();
var folderCount = GetFoldersCount(myFileList) ;
$.writeln(folderCount);
function GetFoldersCount(fileList) {
var folderCount = 0;
console.log(folderCount);
for (var i = 0; i < fileList.length; i++) {
var myFile = myFileList[i];
if (myFile instanceof Folder)
folderCount++;
}
return folderCount
}
我收到错误“文件夹”未定义。
答案 0 :(得分:2)
JS无法直接访问本地文件以解决安全问题。 另一件事是你可以通过Ajax调用和进程访问驱动器上的文件 回应。使用Ajax,您可以在后台发送要执行的操作。
您在InDesign论坛中使用了示例。我不知道InDesign,但我不确定它会起作用。 否则,请查找有关HTML5 File API的文档。希望你能找到答案。 https://w3c.github.io/FileAPI/
一些例子: https://www.html5rocks.com/en/tutorials/file/dndfiles/
答案 1 :(得分:0)
我找到了这项任务的解决方案,这对我来说非常适合。
我用初始目录调用该函数:
moveErrorFiles('C:\\Folder1');
以下是我使用的两个简单函数。
function moveErrorFiles(fileDir) {
var fileSysObj, file, folder, fileCounter, currentFile;
var fileMumber = 0;
fileSysObj = new ActiveXObject("Scripting.FileSystemObject");
folder = fileSysObj.GetFolder(fileDir);
fileCounter = new Enumerator(folder.files);
for (; !fileCounter.atEnd(); fileCounter.moveNext()) {
currentFile = fileCounter.item();
fileMumber++;
if (fileMumber > 5) {
moveFile(currentFile);
}
}
} //function moveErrorFiles() ends here
function moveFile(fileToMove) {
var object = new ActiveXObject("Scripting.FileSystemObject");
var file = object.GetFile(fileToMove);
file.Move("C:\\Folder2\\");
console.log("File was moved successfully");
} //function moveFile() ends here