C#使用filestream而不是file.copy

时间:2016-06-16 10:02:32

标签: c# copy filestream

我正在使用File.copy来复制一些文件。 问题是,它将文件复制为异步,因此它会在复制某些文件的同时继续执行程序。

现在我得到了使用filestream而不是file.copy的提示。

我现在使用的代码是:(示例)

            string instdir = (@"C:\test.dll");
            string srcdir = @"C:\test1.dll";
            File.Copy(srcdir, instdir, true);

问题是,从xml文件读取“test.dll”值(因此要复制的文件要多得多) 在复制之后,它应该执行.exe文件,但它会在复制所有内容之前执行该文件并且发出错误。

任何提示?

我还有下一个问题:

我得到了上面的解决方案,这是一个单独的文件副本。

现在我也有这个:

public static void CopyFolder(DirectoryInfo source, DirectoryInfo install)
        {
            foreach (DirectoryInfo dir in source.GetDirectories())
                CopyFolder(dir, install.CreateSubdirectory(dir.Name));
            foreach (FileInfo file in source.GetFiles())
                file.CopyTo(Path.Combine(install.FullName, file.Name), true);
        }

用于多文件复制(复制文件夹中的所有内容)

知道如何使用它吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

所以你可以打开两个流并复制流:

using(var src = File.OpenRead(@"srcPath"))
using(var dest = File.OpenWrite(@"destPath"))
{
    src.CopyTo(dest); //blocks until finished
}