代码之家  ›  专栏  ›  技术社区  ›  Pir Fahim Shah

如何在Google Drive中的特定文件夹中保存文件夹

  •  0
  • Pir Fahim Shah  · 技术社区  · 10 年前

    我可以使用以下代码在Google Drive的任何文件夹中保存/复制文件 。但当我应用此方法将文件夹保存在任何其他文件夹中时,它将无法保存文件夹,并且不会发生任何事情。我想复制一个文件夹并将其保存在其他位置

      String LocationID="0B-WFTScd2afSFS34TC-223";//getting the id of the parent folder where we have to make the new file as its child
             File orgnlFile =global_file;
             File copiedFile = new File();
    
            copiedFile.setTitle(orgnlFile.getTitle());       
            copiedFile.setMimeType(orgnlFile.getMimeType());
            copiedFile.setParents(Arrays.asList(new ParentReference().setId(LocationID)));
           try 
            {
                mService.files().copy(orgnlFile.getId(), copiedFile).execute();
    
             } catch (IOException e) 
             {
                System.out.println("An error occurred: " + e);
             }
    

    但不幸的是,它不适用于其他目录中的复制粘贴文件夹

    1 回复  |  直到 10 年前
        1
  •  1
  •   pinoyyid    10 年前

    这是因为 复制 正在将文件的媒体内容复制到新文件中。由于文件夹没有媒体内容,因此没有可复制的内容。

    当你说“我想复制一个文件夹”时,你的意思是(1)复制 只有 文件夹,或(2)复制文件夹和文件夹中的所有文件,您的意思是(3)复制或只是再次引用?

    具体取决于您想要实现的目标,您需要进行的驱动API调用是不同的。

    也许最好的解释方法是用*nix命令“cp”、“mv”和“ln”来表达它

    要创建文件夹-a(位于文件夹-b下)及其子文件夹-c(在*nix中为“cp-R/folder-b/folder-a/folder-c”)的副本,您需要:-

    1. 在新父文件夹(folder-c)下创建一个新文件夹-a。注意,尽管folder-a与原件同名。这是一个不同的文件夹。
    2. 记下新文件夹的文件id-a
    3. 获取原始文件夹-a的子文件夹列表(子文件夹提要)
    4. 对于每个孩子,复制它
    5. 将每个新文件的parents属性更新为新文件夹-a

    如果文件夹-a中有文件夹,则需要递归执行上述操作