Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将文件夹从服务器复制到本地目录_C# - Fatal编程技术网

C# 将文件夹从服务器复制到本地目录

C# 将文件夹从服务器复制到本地目录,c#,C#,我正在开发一个用C#下载网站的软件,但在将文件夹从服务器复制到本地目录时遇到了一些问题。为此,我正在执行以下代码 public static void CopyFilesRecursively(DirectoryInfo source, DirectoryInfo target) { try { foreach (DirectoryInfo dir in source.GetDirectories()) Copy

我正在开发一个用C#下载网站的软件,但在将文件夹从服务器复制到本地目录时遇到了一些问题。为此,我正在执行以下代码

  public static void CopyFilesRecursively(DirectoryInfo source, DirectoryInfo target)
  {
      try
      {
          foreach (DirectoryInfo dir in source.GetDirectories())
                CopyFilesRecursively(dir, target.CreateSubdirectory(dir.Name));
          foreach (FileInfo file in source.GetFiles())
                file.CopyTo(Path.Combine(target.FullName, file.Name));
      }
      catch (Exception ex)
      {
          MessageBox.Show(ex.Message, "Form2", MessageBoxButtons.OK, MessageBoxIcon.Error);
      }
  }    
函数调用是

private void button4_Click(object sender, EventArgs e)
{                
    try
    {
         CopyFilesRecursively(new DirectoryInfo(@"https:facebook.com"), new DirectoryInfo(@"G:\Projects\"));
    }
    catch (Exception ex)
    {
         MessageBox.Show(ex.Message, "Form2", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}   

消息框显示“不支持给定的路径格式。”

正如我们所知,internet上托管的所有网站都使用虚拟路径(更具可读性,并提供更高的安全性)作为其文件和文件夹。实际文件和文件夹位于这些虚拟路径后面的服务器上。因此,要从远程服务器复制文件或文件夹,我们需要资源的实际路径

我提供以下代码片段,用于从我自己部署的服务器下载文件(当然我知道它的目录结构)

这些是其他一些你可以寻找的帖子






DirectoryInfo
用于本地或网络路径,而不是https资源。可能您需要身份验证才能查看远程路径,请查看Rob!从https资源下载文件夹的原因是什么?可能是的重复项。您要下载文件还是完整的网站?此代码用于保存文件…我需要使用不同类型的文件保存网站的代码
string filename = "MyPage.xml";
string filesource = Server.MapPath("~/MyFiles/") + filename; // server file "MyPage.xml" available in server directory "files"
System.IO.FileInfo fi = new System.IO.FileInfo(filesource);
string filedest = System.IO.Path.GetTempPath()+"MyFile.xml";
fi.CopyTo(filedest);