1 | var fs = require("fs");
|
2 | var path = require("path");
|
3 | var _ = require("underscore");
|
4 | var curDir = "/";
|
5 |
|
6 | function getTree(root) {
|
7 | var files = [];
|
8 | var fileItems;
|
9 | curDir = root?root:curDir;
|
10 |
|
11 | if (!fs.existsSync(curDir)) {
|
12 | throw "Can't find folder";
|
13 | return;
|
14 | }
|
15 | var stat = fs.statSync(curDir);
|
16 |
|
17 | if (stat.isDirectory()) {
|
18 | fileItems = fs.readdirSync(curDir);
|
19 | if(curDir!="/"){
|
20 | files.push({
|
21 | name : "..",
|
22 | path : path.join(curDir, ".."),
|
23 | icon : "icon-arrow-up",
|
24 | type : "folder"
|
25 | });
|
26 | }
|
27 | _.each(fileItems, function(name) {
|
28 | var p = path.join(curDir, name);
|
29 | var s = fs.statSync(p);
|
30 | var isD = s.isDirectory();
|
31 | var icon = isD ? "icon-folder-open" : "icon-file";
|
32 | var type = isD ? "folder" : "file";
|
33 | if(name.indexOf(".")==0)return;
|
34 | files.push({
|
35 | name : name,
|
36 | path : p,
|
37 | icon : icon,
|
38 | type : type
|
39 | });
|
40 | });
|
41 | }
|
42 |
|
43 | return {
|
44 | files:files,
|
45 | cur:curDir
|
46 | }
|
47 | }
|
48 |
|
49 | module.exports.getTree = getTree;
|