C#复制文件夹

本文介绍了一个使用 C# 实现的递归文件夹复制方法。该方法能够将源文件夹及其所有子文件夹和文件复制到目标位置。如果目标文件夹不存在,则会自动创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 private void CopyFolders(string sourceFilePath, string destinationFilePath)
        {
            try
            {
                DirectoryInfo startDir = new DirectoryInfo(sourceFilePath);
                DirectoryInfo endDir = new DirectoryInfo(destinationFilePath);
                if (!endDir.Exists)
                {
                    Directory.CreateDirectory(destinationFilePath);
                }

                foreach (var item in startDir.GetFiles())
                {
                    File.Copy(item.FullName, endDir + "\\" + item.Name);
                }

                ///递归调用///
                foreach (var item in startDir.GetDirectories())
                {
                    string new_sourcefilepath = item.FullName;
                    string new_destinationfilepath = destinationFilePath + "\\" + item.Name;
                    CopyFolders(new_sourcefilepath, new_destinationfilepath);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
你可以使用C#中的System.IO类来复制文件夹到服务器。以下是示例代码: ```csharp using System.IO; string sourceDir = @"C:\SourceFolder"; string destinationDir = @"\\ServerName\DestinationFolder"; // Create the destination directory if it does not exist if (!Directory.Exists(destinationDir)) { Directory.CreateDirectory(destinationDir); } // Get the files from the source directory and copy them to the destination directory foreach (string file in Directory.GetFiles(sourceDir)) { string destFile = Path.Combine(destinationDir, Path.GetFileName(file)); File.Copy(file, destFile, true); } // Get the subdirectories from the source directory and copy them to the destination directory foreach (string subDir in Directory.GetDirectories(sourceDir)) { string destSubDir = Path.Combine(destinationDir, Path.GetFileName(subDir)); Directory.CreateDirectory(destSubDir); CopyDirectory(subDir, destSubDir); } ``` 在示例代码中,`sourceDir`变量表示源文件夹的路径,`destinationDir`变量表示目标服务器上的文件夹路径。首先,我们检查目标文件夹是否存在,如果不存在,则创建一个。然后,我们使用`Directory.GetFiles`方法获取源文件夹中的所有文件,并使用`File.Copy`方法将它们复制到目标文件夹。接下来,我们使用`Directory.GetDirectories`方法获取源文件夹中的所有子文件夹,并使用`Directory.CreateDirectory`方法创建它们在目标文件夹中的对应项。最后,我们递归地调用`CopyDirectory`方法以处理每个子文件夹中的文件和子文件夹。 注意,这个示例代码中没有包括错误处理和异常处理,你可能需要根据你的具体情况添加它们。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stephon_100

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值