/
DirectoryTools.cs
42 lines (37 loc) · 1.01 KB
/
DirectoryTools.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace gitls
{
public static class DirectoryTools
{
public static IEnumerable<string> GetDirectories(string path, SearchOption option)
{
IEnumerable<string> dirs = null;
try
{
dirs = Directory.EnumerateDirectories(path);
//dirs = Directory.GetDirectories(path).ToList();
}
catch (UnauthorizedAccessException)
{
}
if (dirs != null)
{
foreach (var dir in dirs)
{
if (option == SearchOption.AllDirectories)
{
foreach (var x in GetDirectories(dir, option))
{
yield return x;
}
}
yield return dir;
}
}
}
}
}