C# 使用文件流而不是 file.copy

C# using filestream instead of file.copy

我正在使用 File.copy 复制一些文件。 问题是,它复制文件异步所以它继续程序,同时仍然复制一些文件。

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

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

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

问题在于,"test.dll" 值是从 xml 文件中读取的(因此要复制的文件更多) 复制后它应该执行一个 .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);
        }

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

知道如何在其中使用它吗?

谢谢!

因此您可以打开两个流并复制流:

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