tango.io.FileScan 翻译

 

tango.io.FileScan

(r4774)

License:

BSD style: see license.txt

Version:

Jun 2004: Initial release

Version:

Dec 2006: Pacific release

Author:

Kris

class FileScan #
递归地扫描文件和目录 ,我们执行时增加过滤文件到一个输出结构中。这可以用来产生一个子目录和包含在其中的文件的清单。下面的例子列出所有后缀是“ .d”位于当前目录下的文件和包含它们的文件夹:
1
2
3
4
5
6
7
8
9
10
11
auto scan = new FileScan;

scan (".", ".d");

Stdout.formatln ("{} Folders", scan.folders.length);
foreach (folder; scan.folders)
         Stdout.formatln ("{}", folder);

Stdout.formatln ("\n{} Files", scan.files.length);
foreach (file; scan.files)
         Stdout.formatln ("{}", file);
这未必是扫描巨大数量的文件的最有效方法,但这是很方便的操作方式。
alias FilePath.Filter Filter #
为过滤器委托作别名。接受一个 FilePath和一个 bool值作为参数 ,并返回一个 bool
FilePath参数表示一个通过扫描找到的文件, bool参数表示 FilePath是否表示一个文件夹。

如果与过滤器匹配,过滤器返回true。注意如果路径是一个文件夹就返回false并且忽略包含在里边的所有文件。要递归文件夹,象这样做:

1
return (isDir || match (fp.name));
char[][] errors() [public] #
返回所有在最后扫描找到的错误。
FilePath[] files() [public] #
返回在最后扫描找到的所有文件。
FilePath[] folders() [public] #
返回在最后扫描找到的所有文件夹。
FileScan sweep(char[] path, bool recurse = true) #
从给定的父(上级)路径扫描( sweep)一系列文件和目录,不应用过滤器。
FileScan sweep(char[] path, char[] match, bool recurse = true) #
从给定的父(上级)路径扫描( sweep)一系列文件和目录,文件通过给定后缀被过滤。
FileScan sweep(char[] path, Filter filter, bool recurse = true) #
从给定的父(上级)路径扫描( sweep)一系列文件和目录,文件通过给定委托被过滤。
FileScan scan(FilePath folder, Filter filter, bool recurse) [private] #
用来查找文件和子目录的内部例程。我们路过仅由 '.'字符组成的名字。

Copyright (c) 2004 Kris Bell. All rights reserved :: Generated by dil on Sat Jun 27 18:19:38 2009. Rendered by kandil.

你可能感兴趣的:(FP)