如何在没有List
的情况下编写此代码?我必须在没有任何其他类(集合,泛型......)的情况下编写此代码,仅使用String
数组。我也无法使用Directory.GetDirectories(path, "*", SearchOption.AllDirectories);
参数来查找所有目录。
注意:您可以编写其他功能,在String
数组中添加路线。
static void WriteDirectories(string rootDir) {
// Write the first item
Console.WriteLine(rootDir);
// Create a list of sub directories
List<string> subDirs = new List<string>();
String[] arr = Directory.GetDirectories(rootDir);
for(int i =0; i < arr.Length; i++) {
subDirs.Add(arr[i]);
}
for (int i = 0; i < subDirs.Count; i++) {
// Write the current sub directory item
Console.WriteLine(subDirs[i]);
// Add any sub folders under this item to our list
subDirs.AddRange(Directory.GetDirectories(subDirs[i]));
}
}
答案 0 :(得分:0)
您可以简单地编写一个组合两个数组而不是AddRange
方法的函数,并将所有目录放在String
数组中。
static void WriteDirectories(string path) {
Console.WriteLine(path);
String[] dir = Directory.GetDirectories(path);
for (int i = 0; i < dir.Length; i++) {
Console.WriteLine(dir[i]);
Add(ref dir , Directory.GetDirectories(dir[i]));
}
}
static void Add(ref String[] dir , String[] subDir) {
if (subDir.Length == 0) return;
String[] temp = new String[dir.Length];
for (int i = 0; i < temp.Length; i++) {
temp[i] = dir[i];
}
dir = new String[dir.Length + subDir.Length];
for (int i = 0; i < temp.Length; i++) {
dir[i] = temp[i];
}
for (int i = 0; i < subDir.Length; i++) {
dir[i + temp.Length] = subDir[i];
}
}