我正在使用node-webkit,并试图让用户选择一个文件夹,然后返回该文件夹的目录结构并递归获取其子级。
我已经用这个代码(在Angular Controller中)相当简单地工作了。
var fs = require('fs');
$scope.explorer=[];
$scope.openFile = function(){
$scope.explorer = [tree_entry($scope.path)];
get_folder($scope.path, $scope.explorer[0].children);
};
function get_folder(path, tree){
fs.readdir(path, function(err,files){
if (err) return console.log(err);
files.forEach( function (file,idx){
tree.push(tree_entry(file));
fs.lstat(path+'/'+file,function(err,stats){
if(err) return console.log(err);
if(stats.isDirectory()){
get_folder(path+'/'+file,tree[idx].children);
}
});
});
});
console.log($scope.explorer);
return;
}
function tree_entry(entry){
return { label : entry, children: []}
}
取一个中等大小的文件夹,其中包含22个子文件夹,深度约为4层,这需要几分钟的时间来获取整个目录结构。
我在这里显然做错了什么吗?看到我正在使用内置的Node fs方法,我简直不敢花这么长时间。还是有一种方法可以获取目录的全部内容,而又无需触摸每个文件?
我将要能够在整个树的整个文件名上使用Angular过滤器,也可能在内容上使用Angular过滤器,因此延迟处理整个树不可能是可行的解决方案。
在我的项目中,我使用此功能获取大量文件。这非常快(require("FS")
可以加快速度):
var _getAllFilesFromFolder = function(dir) {
var filesystem = require("fs");
var results = [];
filesystem.readdirSync(dir).forEach(function(file) {
file = dir+'/'+file;
var stat = filesystem.statSync(file);
if (stat && stat.isDirectory()) {
results = results.concat(_getAllFilesFromFolder(file))
} else results.push(file);
});
return results;
};
用法很明确:
_getAllFilesFromFolder(__dirname + "folder");
问题内容: 我在文档文件夹中获取文件名的代码有什么问题? 我以为我已正确阅读了文档,并且我对documents文件夹中的内容非常确定,但是“ fileList”没有显示任何内容?“目录”显示文件夹的路径。 问题答案: 此解决方案适用于 Swift 4 (Xcode 9.2)和 Swift 5 (Xcode 10.2.1+): 这是一个可重用的FileManager扩展,它还允许您跳过或在结果中包含
问题 你想获取文件系统中某个目录下的所有文件列表。 解决方案 使用 os.listdir() 函数来获取某个目录中的文件列表: import os names = os.listdir('somedir') 结果会返回目录中所有文件列表,包括所有文件,子目录,符号链接等等。 如果你需要通过某种方式过滤数据,可以考虑结合 os.path 库中的一些函数来使用列表推导。比如: import os.pa
我有一个csv($HomeDir)文件,如下所示: 我得到成功的LastAccessTime每个子文件夹在'HomeDir'列与此代码: $newcsv的结果是: 问题是:有没有办法根据相应的“用户”列分配相关用户?这样的输出对我来说也足够了 提前谢谢
如何使用BigQueryJavaAPI获取云存储子目录中的对象列表? 我可以在文件夹中获取对象列表,但不能在第二级文件夹中获取。所以如果我有/Folder1/Folder2/File1.csv/Folder1/File2.csv 我可以得到Folder2 但是如何获取Folder2中的对象列表呢?
问题内容: 我无法在脚本化的Jenkins Pipeline中的给定目录中创建文件名的简单列表。我尝试了在SO和其他论坛上发布的许多Groovy Script示例,但是该功能被阻止或找不到方法或其他方法。 这似乎是最简单的 但这会错误地解决相对路径,因此出现此错误: 我还尝试用以下方法包装它: 但是有同样的错误: 这不会产生错误,只会将一个文件添加到列表中: 然后,除第一个文件外,所有文件的内容都
我正在寻找一种方法来获取zip文件中的文件列表。我创建了一个方法来获取目录中的文件列表,但我也在寻找一种方法来获取zip文件中的文件,而不是只显示zip文件。 以下是我的方法: