ski*_*ppy 10 language-agnostic filesystems directory-traversal
如何用您喜欢的语言遍历目录树?
在不同的操作系统中遍历目录树需要了解什么?在不同的文件系统上?
您最喜欢的库/模块是什么帮助遍历目录树?
在Python中:
如果您正在寻找快速,清洁和便携的解决方案,请尝试:
import os
base_dir = '.'
def foo(arg, curr_dir, files):
print curr_dir
print files
os.path.walk(base_dir, foo, None)
Run Code Online (Sandbox Code Playgroud)
请注意,您可以修改foo以执行其他操作,而不仅仅是打印名称.此外,如果您对迁移到Python 3.0感兴趣,则必须使用os.walk().
在Java中:
递归在这里很有用.以下是一段Java代码片段,它已经遍布互联网多年.不确定谁值得信赖.
// Process all files and directories under dir
public static void visitAllDirsAndFiles(File dir) {
process(dir); //do something useful with the file or dir
if (dir.isDirectory()) {
String[] children = dir.list();
for (int i=0; i<children.length; i++) {
visitAllDirsAndFiles(new File(dir, children[i]));
}
}
}
Run Code Online (Sandbox Code Playgroud)
在C#中:
Stack<DirectoryInfo> dirs = new Stack<DirectoryInfo>();
dirs.Push(new DirectoryInfo("C:\\"));
while (dirs.Count > 0) {
DirectoryInfo current = dirs.Pop();
// Do something with 'current' (if you want)
Array.ForEach(current.GetFiles(), delegate(FileInfo f)
{
// Do something with 'f'
});
Array.ForEach(current.GetDirectories(), delegate(DirectoryInfo d)
{
dirs.Push(d);
});
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4808 次 |
最近记录: |