文件复制* .mp4

时间:2014-05-17 20:11:01

标签: c# file copy

是否可以将* .mp4,*。LRV和* .THM文件从一个位置复制到另一个位置?

我有一个c#项目,我想将一些文件从a复制到b。

我有一个工作方法是复制我的文件..但我想添加一些额外的东西,就像不同的文件扩展名。

    public void Copy1(string sourceDirectory, string targetDirectory)
    {                          
        DirectoryInfo diSource = new DirectoryInfo(sourceDirectory);
        DirectoryInfo diTarget = new DirectoryInfo(targetDirectory);
        //Gets size of all files present in source folder.
        GetSize(diSource, diTarget);
        maxbytes = maxbytes / 1024;

        progressBar1.Maximum = maxbytes;
        CopyAll(diSource, diTarget);
    }
    public void CopyAll(DirectoryInfo source, DirectoryInfo target)
    {

        if (Directory.Exists(target.FullName) == false)
        {
            Directory.CreateDirectory(target.FullName);
        }
        foreach (FileInfo fi in source.GetFiles())
        {

            fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);

            total += (int)fi.Length;

            copied += (int)fi.Length;
            copied /= 1024;
            progressBar1.Step = copied;

            progressBar1.PerformStep();
            label1.Text = (total / 1048576).ToString() + "MB van de " + (maxbytes / 1024).ToString() + "MB gekopieërd";

            label1.Refresh();
        }
        foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
        {
            DirectoryInfo nextTargetSubDir = target.CreateSubdirectory(diSourceSubDir.Name);
            CopyAll(diSourceSubDir, nextTargetSubDir);
        }
    }
    public void GetSize(DirectoryInfo source, DirectoryInfo target)
    {
        if (Directory.Exists(target.FullName) == false)
        {
            Directory.CreateDirectory(target.FullName);
        }
        foreach (FileInfo fi in source.GetFiles())
        {
            maxbytes += (int)fi.Length;//Size of File
        }
        foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
        {
            DirectoryInfo nextTargetSubDir = target.CreateSubdirectory(diSourceSubDir.Name);
            GetSize(diSourceSubDir, nextTargetSubDir);

        }

    }

1 个答案:

答案 0 :(得分:2)

您可以在目录中获取具有多个允许的扩展名之一的所有文件,如下所示:

var extensions = new[] { ".mp4", ".LRV", ".THM" };

var files =  System.IO.Directory.GetFiles(path)
                                .Where(file => extensions.Contains(new FileInfo(file).Extension));