我正在尝试编写一个插入查询,数据来自文本文件。但是文本文件位于文件夹中。让我展示一下层次结构。
主文件夹 - >许多文件夹 - >许多文件夹 - >文本文件也有另一个名为ORJ的文件夹。
包含文本文件的每个文件夹都有另一个名为ORJ的文件夹。我不想处理orj。只有文本文件夹和它旁边的pdf。我该怎么做?我找到了一个代码,我正在尝试修改它。顺便说一下,这是C#。
void ProcessFiles(string path)
{
Stack<string> stack;
string[] files;
string[] directories;
string dir;
stack = new Stack();
stack.Push(path);
while (stack.Count > 0) {
// Pop a directory
dir = stack.Pop();
files = Directory.GetFiles(dir);
foreach(string file in files)
{
// Process each file
}
directories = Directory.GetDirectories(dir);
foreach(string directory in directories)
{
// Push each directory into stack
stack.Push(directory);
}
}
}
答案 0 :(得分:2)
是否需要使用堆栈执行此操作?
你可以把树递减到
void ProcessFolder(string path) {
// Process the files
foreach(var file in Directory.GetFiles(path)) {
// Process each file
}
// process the sub folders
foreach (var subFolder in Directory.GetDirectories(path).Where(fld => System.IO.Path.GetFilename(fld) != "ORJ")) {
ProcessFolder(subFolder);
}
}
HTH, 艾伦。
答案 1 :(得分:0)
在代码中的某处,您必须检查目录的名称,然后才将其添加到堆栈中。
例如:
directories = Directory.GetDirectories(dir);
foreach(string directory in directories)
{
if(directory != "ORJ") // Push each directory except orj into stack
stack.Push(directory);
}