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 }
Just an alias for walk(SpanModel.breadth)