当前位置: 首页 > 知识库问答 >
问题:

一种将文件从一个云复制到另一个云的方法?

闻人宏盛
2023-03-14

因此,我正在编写一个有两个面板的文件管理器(就像Total Commander一样)。我试图将3个主要的云提供商(GDrive、Dropbox、OneDrive)集成到其中。我正在用C#(WPF)编写这个文件管理器,并尝试使用官方SDK。其中一个特性是可以将文件和文件夹从一个云复制到另一个云,所以就像GDrive在左边面板上,Dropbox在右边面板上,从GDrive复制到Dropbox。

有没有办法做到这一点?

共有1个答案

王岳
2023-03-14

下面是从GDrive下载文件的代码。您注意到它使用了一个流。您可以使用this stream对象为上传提供流对象。如果你搜索的话,其他驱动器也有类似的例子。

    using Google.Apis.Authentication;
    using Google.Apis.Drive.v2;
    using Google.Apis.Drive.v2.Data;

    using System.Net;

    public class DownLoadFromGDrive{

      /// <param name="authenticator">
      /// Authenticator responsible for creating authorized web requests.
      /// </param>
      /// <param name="file">Drive File instance.</param>
      /// <returns>File's content if successful, null otherwise.</returns>

      public static System.IO.Stream DownloadFile(
          IAuthenticator authenticator, File file) {
        if (!String.IsNullOrEmpty(file.DownloadUrl)) {
          try {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(
                new Uri(file.DownloadUrl));
            authenticator.ApplyAuthenticationToRequest(request);
            HttpWebResponse response = (HttpWebResponse) request.GetResponse();
            if (response.StatusCode == HttpStatusCode.OK) {
              return response.GetResponseStream();
            } 
            else 
           {
              return null;
            }
          } 
          catch (Exception e) 
          {
            return null;
          }
        } 
      }
    }

此链接解释了如何上载到GDrive:

 类似资料:
  • 问题内容: 我有两个Java.io.File对象file1和file2。我想将内容从file1复制到file2。有没有一种标准的方法可以执行此操作,而无需创建必须读取文件1并写入文件2的方法 问题答案: 不,没有内置方法可以做到这一点。与您要完成的工作最接近的是from 的方法,如下所示: 并且不要忘记处理异常并在一个块中关闭所有内容。

  • 问题:我想从谷歌云存储桶中的文件夹(例如桶1中的文件夹1)复制文件到另一个桶(例如桶2)。我找不到任何谷歌云存储的气流操作员来复制文件。

  • 我正在使用QT,我无法找到如何将文件从一个目录复制到另一个目录?我怎样才能做到这一点?

  • 我们正在努力从Maven迁移到Gradle。不幸的是,我们还有几个战争复盖物要处理。

  • 问题内容: 我的iOS应用程序中有2个数据库文件: 原始数据库(只读,保存在我的应用程序的主目录中) 用户的数据库(保存在用户的文件夹中) 我需要运行一个SQL查询,以从原始数据库复制到用户的数据库,例如: 是否可以通过iOS上运行的SQLite做到这一点?问题是两个数据库位于不同的文件夹中。我想避免在代码(C#)中完成这项工作,这是显而易见的方式,但速度要慢得多。 我的应用程序是用C#/ Mon