将文件夹下所有文件输出到日志文件中 c#递归算法学习示例


在C#中,你可以使用递归算法来遍历文件夹(包括其子文件夹)中的所有文件,并将它们的路径输出到一个日志文件中。以下是一个简单的示例代码,展示了如何实现这一功能。

请注意,此代码假设你已经有了一个目标文件夹的路径,并且你想要将结果输出到一个名为`files_log.txt`的日志文件中。


using System;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        string directoryPath = @"C:\你的目标文件夹路径"; // 请替换为你的目标文件夹路径
        string logFilePath = @"C:\files_log.txt"; // 日志文件路径

        // 调用递归函数来遍历文件夹并输出文件路径到日志文件
        LogFilesInDirectory(directoryPath, logFilePath);

        Console.WriteLine("文件路径已输出到日志文件。");
    }

    // 递归函数来遍历文件夹
    static void LogFilesInDirectory(string directoryPath, string logFilePath)
    {
        try
        {
            // 获取当前文件夹下的所有文件和子文件夹
            string[] files = Directory.GetFiles(directoryPath);
            string[] dirs = Directory.GetDirectories(directoryPath);

            // 遍历文件并输出到日志文件
            foreach (string file in files)
            {
                File.AppendAllText(logFilePath, file + Environment.NewLine);
            }

            // 遍历子文件夹并递归调用
            foreach (string dir in dirs)
            {
                LogFilesInDirectory(dir, logFilePath);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("发生错误: " + ex.Message);
        }
    }
}

**说明**:

- 请将`@"C:\你的目标文件夹路径"`替换为你想要遍历的目标文件夹的实际路径。

- 日志文件`files_log.txt`将被创建(如果尚不存在)在指定的路径下,并包含所有文件的路径。

- 这个示例中的递归函数`LogFilesInDirectory`首先获取当前文件夹下的所有文件和子文件夹,然后遍历文件并将它们的路径写入日志文件。对于每个子文件夹,它会递归地调用自己。

- 异常处理被包含在内,以捕获并报告在遍历过程中可能发生的任何错误。

希望这个示例对你有所帮助!