如何将文件夹中的所有文件复制到c#中的另一个文件夹

时间:2013-03-18 11:23:12

标签: c# .net copy

请让我知道如何将文件夹中的所有文件复制到c#.net。

中的另一个文件夹

目前我正在使用:

int j = 1;
int k = 1;

    for (j = 1; j < 5; j++)
    {

        for (k = 1; k < 32; k++)
        {

            string sourcePath = @Desktop_location + "\Test" + k + ".log";

            if (System.IO.File.Exists(sourcePath))
            {
                File.Copy(@Desktop_location + "\\Statistics\\Server" + j + "\Test" + k + ".log", @Desktop_location + "\\Statistics\\Transfer\\test" + j + k + ".log");
                //Console.WriteLine("Test Result");
            }
            else
            {
                //Console.WriteLine("Test");

2 个答案:

答案 0 :(得分:1)

string[] filePaths = Directory.GetFiles(@"c:\MyDir\");

请参阅Getting files from a directory

string myPath = @"C:\Test";
foreach (string file in filePaths)
{
    FileInfo info = new FileInfo(file);
    if (!File.Exists(info.FullName))
    {
       File.Copy(info.FullName, newPath);
    }
}

请参阅Using FileInfo Class,您实际上并不需要它,但它包含许多用于处理文件和文件夹的有用功能。 阅读它可以帮助您规划应用程序。

答案 1 :(得分:0)

如果您确实要复制所有文件,可以这样做(复制包括目录在内的所有内容):

foreach (string dirPath in Directory.GetDirectories(sourcePath, "*", SearchOption.AllDirectories))
{
    Directory.CreateDirectory(dirPath.Replace(sourcePath, destinationPath));
}

foreach (var newPath in Directory.GetFiles(sourcePath, "*.*", SearchOption.AllDirectories))
{
    File.Copy(newPath, newPath.Replace(sourcePath, destinationPath));
}