Path.walkBreadth

Just an alias for walk(SpanModel.breadth)

  1. auto walkBreadth(bool followSymlink)
  2. auto walkBreadth(string pattern, bool followSymlink)
    struct Path
    @system const
    walkBreadth
    (
    in string pattern
    ,
    bool followSymlink = true
    )

Examples

1 import dshould;
2 import std.array: array;
3 import std.algorithm: sort;
4 Path root = createTempPath();
5 scope(exit) root.remove();
6 
7 // Create sample directory structure
8 root.join("d1").mkdir(true);
9 root.join("d1", "d2").mkdir(true);
10 root.join("d1", "test1.txt").writeFile("Test 1");
11 root.join("d1", "test2.txt").writeFile("Test 2");
12 root.join("d1", "test3.py").writeFile("print('Test 3')");
13 root.join("d1", "d2", "test4.py").writeFile("print('Test 4')");
14 root.join("d1", "d2", "test5.py").writeFile("print('Test 5')");
15 root.join("d1", "d2", "test6.txt").writeFile("print('Test 6')");
16 
17 // Find py files in directory d1
18 root.join("d1").walk("*.py").array.should.equal([
19     root.join("d1", "test3.py"),
20 ]);
21 
22 // Find py files in directory d1 recursively
23 root.join("d1").walk("*.py", SpanMode.breadth).array.sort.array.should.equal([
24     root.join("d1", "d2", "test4.py"),
25     root.join("d1", "d2", "test5.py"),
26     root.join("d1", "test3.py"),
27 ]);
28 
29 // Find py files in directory d1 recursively
30 root.join("d1").walk("*.txt", SpanMode.breadth).array.sort.array.should.equal([
31     root.join("d1", "d2", "test6.txt"),
32     root.join("d1", "test1.txt"),
33     root.join("d1", "test2.txt"),
34 ]);
35 
36 // Save current directory
37 const auto current = Path.current;
38 scope(exit) current.chdir;
39 
40 // Switch current directory to d1
41 root.join("d1").chdir;
42 
43 // Try to find txt files inside current directory
44 version(OSX) {
45     Path(".").walk("*.txt", SpanMode.breadth).array.sort.array.should.equal([
46         root.realPath.join("d1", "d2", "test6.txt"),
47         root.realPath.join("d1", "test1.txt"),
48         root.realPath.join("d1", "test2.txt"),
49     ]);
50 } else {
51     Path(".").walk("*.txt", SpanMode.breadth).array.sort.array.should.equal([
52         root.join("d1", "d2", "test6.txt"),
53         root.join("d1", "test1.txt"),
54         root.join("d1", "test2.txt"),
55     ]);
56 }

Meta