从应用程序共享文件到Dropbox(MVC C#)

时间:2017-09-12 12:08:55

标签: c# .net dropbox-api

我有什么方法可以将文件共享到用户的收件箱文件夹?

我想要实现的内容如下:

  1. 用户点击Dropbox图标。
  2. 然后Dropbox询问他/她的Dropbox帐户详情。
  3. 来自应用程序的文件保存到他/她的保管箱帐户。
  4. 我搜索了Dropbox API但是没有得到任何可以帮助我保存到用户的Dropbox帐户的内容。 我读了API文档, https://www.dropbox.com/developers-v1/core/docs#files_put ,在这里,我可以将文件保存到我的保管箱,但不保存给其他人。

    请指导我。提前谢谢。

3 个答案:

答案 0 :(得分:1)

我不知道版本2是否适合您的目的,但是version 1 of the API is deprecated

如果用户将Dropbox与Explorer集成,那么我认为您可以只写入本地文件夹,它会像往常一样同步到Dropbox。

答案 1 :(得分:0)

您可以使用Dropbox API让用户授权您的应用访问其Dropbox帐户,然后以编程方式将文件保存到该帐户。 (即使用户没有安装官方Dropbox应用程序,也可以使用。)

对于.NET,我们建议使用官方Dropbox API v2 .NET SDK:

Class#getModule

本教程介绍如何上传文件:

@Alan

答案 2 :(得分:0)

以下是我用来保存Dropbox的代码段。我希望这能帮助配偶。

// Code to retrieve Dropbox Local Folder
var infoPath = @"Dropbox\info.json";
        var jsonPath = Path.Combine(Environment.GetEnvironmentVariable("LocalAppData"), infoPath);

        if (!System.IO.File.Exists(jsonPath)) jsonPath = Path.Combine(Environment.GetEnvironmentVariable("AppData"), infoPath);

        if (!System.IO.File.Exists(jsonPath)) {
            return "-2";
        } 

        var dropboxPath = System.IO.File.ReadAllText(jsonPath).Split('\"')[5].Replace(@"\\", @"\");

        string fileName = "Your FileName";
        string sourcePath = Server.MapPath("Source Path Here");
        string targetPath = dropboxPath;

        // Use Path class to manipulate file and directory paths.
        string sourceFile = System.IO.Path.Combine(sourcePath, "filename.extention");
        string destFile = System.IO.Path.Combine(targetPath, fileName);

        // To copy a folder's contents to a new location:
        // Create a new target folder, if necessary.
        if (!System.IO.Directory.Exists(targetPath))
        {
            System.IO.Directory.CreateDirectory(targetPath);
        }

        // To copy a file to another location and 
        // overwrite the destination file if it already exists.
        System.IO.File.Copy(sourceFile, destFile, true);

        if (System.IO.File.Exists(destFile))
        {
            System.IO.File.SetLastWriteTime(destFile, DateTime.Now);
        }