gpt4 book ai didi

c# - 具有递归的目录/文件树?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:24:47 25 4
gpt4 key购买 nike

你好,我正在制作一个程序,用户可以在其中放入包含文件的文件或文件夹和/或包含可能包含更多文件和文件夹的更多文件夹等

我的每个文件对象都有一个名为 above folder name 的字段,它将存储它们上方文件夹的路径。最上面的文件夹名称是他们最先放下的那个。将来,如果他们在根级别添加多个目录,我会处理,但现在您可以假设他们只会放入一个顶级文件夹。

到目前为止,这是我的代码:

 foreach (string fileDropped in files)
{

if(Directory.Exists(fileDropped))
{
// folder
string[] filesInFolder = Directory.GetFiles(fileDropped);
string folderName = fileDropped.Substring(fileDropped.LastIndexOf('\\') + 1);
foreach(string fileTemp in filesInFolder)
{
//if this is a directory then do this loop again with recursion?
File file = new File(fileTemp);
file.aboveFolderName = folderName;
dataStorage.AddFileToList(file);
}
}
else
{
File file = new File(fileDropped);
dataStorage.AddFileToList(file);

}



}

多层向下的文件将具有从根文件夹开始的完整路径,

"TestFolder/SubTestFolder/SubSubFolder/File.txt"

关于我应该如何构建它有什么建议或想法吗?谢谢

最佳答案

下面是递归的方法

        public void Recursion(string path, IList<string> paths)
{
paths.Add(path);
if(Directory.Exists(path))
{
DirectoryInfo directory = new DirectoryInfo(path);
paths.Add(directory.FullName);

foreach (var file in directory.EnumerateFiles())
{
paths.Add(file.FullName);
}

foreach (var dir in directory.EnumerateDirectories())
{
Recursion(dir.FullName, paths);
}
}
}

关于c# - 具有递归的目录/文件树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27363883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com