VirtualBox

source: vbox/trunk/src/libs/xpcom18a4/xpcom/tests/utils/ls.js@ 99496

最後變更 在這個檔案從99496是 1,由 vboxsync 提交於 55 年 前

import

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 1.3 KB
 
1const nsILocalFile = Components.interfaces.nsILocalFile;
2var prefix = "";
3
4function ls(path, recur)
5{
6 var file = Components.classes["@mozilla.org/file/local;1"].
7 createInstance(nsILocalFile);
8 try {
9 file.initWithPath( path );
10
11 if (file.isDirectory() && arguments.length == 1)
12 ls_dir(file, recur);
13 else
14 ls_file(file, recur);
15 }
16 catch (e) {
17 dump("Error Returned " + e + "\n");
18 }
19}
20function ls_file(file, recur)
21{
22 dump(prefix);
23
24 try {
25 if (file.isDirectory()) {
26 dump("directory " + file.leafName + "\n");
27 if(recur)
28 ls_dir(file, true);
29 return;
30 }
31
32 dump(file.leafName + " " + file.fileSize);
33 if (file.isSymlink())
34 dump(" -> " + file.target);
35 dump("\n");
36 }
37
38 catch (e) {
39 dump(file.leafName + " (error accessing)\n");
40 }
41}
42
43function ls_dir(file, recur)
44{
45 var leafName = file.leafName;
46
47 var old = prefix;
48 prefix = prefix + " ";
49
50 iter = file.directoryEntries;
51 dump(iter + "\n");
52
53 foreach_iter(iter,
54 function (file) { ls_file(file, recur); });
55 prefix = old;
56}
57
58function foreach_iter(iter, fun)
59{
60 while (iter.hasMoreElements()) {
61 var item = iter.getNext().QueryInterface(nsILocalFile);
62 fun(item);
63 }
64}
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette