Можно ли дублировать папку на Google Диске?

Мне нужно дублировать всю папку на своем Google Диске раз в неделю. В папке содержится около 25 файлов. Что это простой способ сделать это?

35 голосов | спросил Dude2012 8 FebruaryEurope/MoscowbFri, 08 Feb 2013 05:41:55 +0400000000amFri, 08 Feb 2013 05:41:55 +040013 2013, 05:41:55

9 ответов


18

Если вы используете приложение Google Диск на своем ПК, вы можете скопировать и вставить папку в каталог Google Диска, и это скопирует ее. Я не думаю, что это можно сделать из веб-приложения.

ответил ComputerLocus 9 FebruaryEurope/MoscowbSat, 09 Feb 2013 00:04:12 +0400000000amSat, 09 Feb 2013 00:04:12 +040013 2013, 00:04:12
7

Написали скрипт приложения, чтобы решить эту проблему. Вы можете скопировать содержимое любой папки, а также структуру в ней. Скрипт поможет устранить необходимость в приложении Google Диска. Добавляя триггеры, вы можете даже автоматизировать процесс.

GDrive Copy Folder Structure /Content Script

Скопировать структуру папок в Google Диске

Обратите внимание:

  • это также добавляет суффикс _copy ко всем подпапкам
  • folder_you_want_copied_copy находится в наивысшей родительской иерархии вашего Google Диска, поэтому, если вы скопировали подпапку своего диска, она будет пузырь до самого высокого уровня при копировании
ответил Shunmugh Sundaram 5 Mayam14 2014, 10:54:17
6

Если вы находитесь в веб-интерфейсе Google Диска ...

  1. Создайте новую папку и назовите ее, что хотите.

  2. Перейдите в ранее существующую папку, выберите все файлы, щелкните правой кнопкой мыши и нажмите кнопку копирования.

  3. Выберите все копии, щелкните правой кнопкой мыши и нажмите кнопку перемещения. Выберите «Новая папка».

Обратите внимание, что этот метод не будет работать, если папка, которую вы хотите скопировать, имеет подпапки.

ответил Brandon 28 +03002015-10-28T17:05:50+03:00312015bEurope/MoscowWed, 28 Oct 2015 17:05:50 +0300 2015, 17:05:50
2

Вы можете использовать « скопировать папку » для электронных таблиц Google

  1. создать таблицу Google
  2. нажмите Add-ons > Get add-ons и добавьте дополнение «Скопировать папку»
  3. выберите папку, которую вы хотите скопировать.
  4. done

Смотрите видеоурок .

ответил abbood 15 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 15 Sep 2015 13:52:46 +0300 2015, 13:52:46
2

Очень поздний ответ для OP, и я думаю, что даже не возможно во время запроса, но это то, что я делаю сегодня:

  1. Выберите папку, которую я хочу дублировать.
  2. Вторичный щелчок на нем, а затем выберите «Загрузить» из всплывающего меню
  3. Попросите мой браузер сохранить zipped-архив во временный каталог
  4. Извлеките папку из архива и дайте ей новое имя
  5. Назад на Диске; нажмите большую синюю кнопку «Новый» и выберите «Загрузка папки» в раскрывающемся меню.
  6. Назад на моем компьютере; возьмите новую папку и перетащите ее обратно на Дисковод.
  7. Промыть туалет

Примечание. Это решение, когда у вас много маленьких файлов и подпапок, которые вместе создают небольшой сжатый файл. Это уменьшает полезность при увеличении общего размера сжатого файла.

ответил Martin Bramwell 4 Maypm17 2017, 21:44:36
2

Я предпочитаю воздерживаться от предоставления третьим сторонам доступа к моему Диску, если это мне не понадобится, например Lucky 711 , Я написал свой собственный сценарий. Я оставляю его здесь для будущих искателей приключений Google. Он скопирует папку и все ее содержимое. В моем случае использования я написал его для обработки файлов с несколькими родителями, просто добавив скопированную папку в качестве нового родителя. Если вы этого не хотите, отпустите часть «Подсчитайте родителей, которые не являются этой родительской».

function copyFolderAndContentsToFolder(folderToCopyId, newParentFolderId, newFolderName) {

  var folderToCopy = DriveApp.getFolderById(folderToCopyId);
  var newParentFolder = DriveApp.getFolderById(newParentFolderId);

  // Create the copy of the folder
  var newFolder = newParentFolder.createFolder(newFolderName);

  // Copy all the files in that folder
  var files = folderToCopy.getFiles();
  while (files.hasNext()) {
    var file = files.next();

    // Count the parents that aren't this parent
    var countOfOtherParents = 0;
    var parents = file.getParents();
    while (parents.hasNext()) {
      var parent = parents.next();
      if (parent.getId() !== folderToCopyId) { countOfOtherParents++; }
    }

    // If it's unique, then copy it. Otherwise, just add it to the new parent.
    if (countOfOtherParents == 0) {
      file.makeCopy(file.getName(),newFolder);
    } else {
      newFolder.addFile(file);
    }

  }

  // Copy all the subfolders in that folder
  var folders = folderToCopy.getFolders();
  while (folders.hasNext()) {
    var folder = folders.next();
    copyFolderAndContentsToFolder(folder.getId(), newFolder.getId(), folder.getName());
  }

}

Для справки, если вы хотите создавать новые копии файлов с несколькими родителями, а не просто добавлять новую папку в качестве другого родителя, более короткий код будет выглядеть следующим образом:

function copyFolderAndContentsToFolder(folderToCopyId, newParentFolderId, newFolderName) {

  var folderToCopy = DriveApp.getFolderById(folderToCopyId);
  var newParentFolder = DriveApp.getFolderById(newParentFolderId);

  // Create the copy of the folder
  var newFolder = newParentFolder.createFolder(newFolderName);

  // Copy all the files in that folder
  var files = folderToCopy.getFiles();
  while (files.hasNext()) {
    var file = files.next();
    file.makeCopy(file.getName(),newFolder);
  }

  // Copy all the subfolders in that folder
  var folders = folderToCopy.getFolders();
  while (folders.hasNext()) {
    var folder = folders.next();
    copyFolderAndContentsToFolder(folder.getId(), newFolder.getId(), folder.getName());
  }

}
ответил Engineer Toast 1 FebruaryEurope/MoscowbThu, 01 Feb 2018 02:32:15 +0300000000amThu, 01 Feb 2018 02:32:15 +030018 2018, 02:32:15
1

Я использую несколько машин и не хочу размещать приложение для диска на всех из них, поэтому я написал сценарий ниже для копирования на сайт. Это уродливое и основное, но оно работает. Он копирует только папку и ее файлы, а не вложенные папки. Я уверен, что есть возможности для улучшения, поэтому не стесняйтесь принимать это и совершенствовать, но я надеюсь, что это будет полезно с самого начала.

В приведенном ниже комментарии это скрипт Google Apps. Способ его использования заключается в том, чтобы открыть приложение для сценариев Google, а затем скопировать и пропустить весь код в пустой скрипт. После этого нажмите кнопку «Опубликовать» в меню, затем выберите «Развернуть как веб-приложение». Затем вы можете нажать ссылку «Последний код» или скопировать и вставить URL-адрес в свой браузер. Затем вы найдете окно, в котором вы можете ввести папку, которую хотите скопировать, и кнопку копирования. Это должно создать копию папки, которую вы назвали, и копию всех файлов внутри.

Примечание: он не копирует подпапки, а только файлы.

function doGet()
{
  // Build UI
  // Create UI object
  var copyUI = UiApp.createApplication();
  // Create Input box referenced later by the name explicitly set below
  var userInput = copyUI.createTextBox().setName("textbox1");
  //create button
  var enterButton = copyUI.createButton("copy");
  // add all objects to UI object
  copyUI.add(userInput).add(enterButton);

  //Create clicke event handeler and add input field to handeler
  var clickHandler = copyUI.createServerHandler('onClick')
  .addCallbackElement(userInput);

  // add handelrer to the copy button
  enterButton.addClickHandler(clickHandler);

  // instantiate GUI
  return copyUI;
}


function onClick(e)
{
  // call currently active application/gui
  var app = UiApp.getActiveApplication();

  //Pass in the value of the e paramater named 'textbox1'
  var input = e.parameter.textbox1;

  // log value passed in from user input
  //Logger.log(input);

  // perform file copy
  CopyFile(input);
}


function CopyFile(filename)
{
  // declaire variables
  var newFolder_String;
  var newFolder;
  var originalFolder;
  var fileArray;
  var loopCount;
  var arrayLength;
  var newFile;
  // get original folder id
  originalFolder = DocsList.getFolder(filename);
  Logger.log(originalFolder.getId());


  // create new "copy" folder using: createFolder(<filename>_copy)
  newFolder_String = filename + "_Copy";
  Logger.log(newFolder_String);
  newFolder = DocsList.createFolder(newFolder_String);

  // get folders and files from original file using: 
    //   getFiles() from original file into an array
  fileArray = originalFolder.getFiles();

  // Copy files into folder:
  arrayLength = fileArray.length;
  loopCount = 0;

  // looping through array of file
  for (loopCount = 0; loopCount < arrayLength; loopCount++)
  {
    // create file copies using: file[i].makeCopy() and newFile.addToFolder(CopyFolder)
    newFile = fileArray[loopCount].makeCopy();
    Logger.log(newFile.getName());
    newFile.addToFolder(newFolder)
  }

}
ответил Lucky 711 24 FebruaryEurope/MoscowbMon, 24 Feb 2014 11:13:44 +0400000000amMon, 24 Feb 2014 11:13:44 +040014 2014, 11:13:44
-1

Чтобы дублировать папку drag & переместите его в другую папку, удерживая клавишу CTRL.

ответил aborruso 8 FebruaryEurope/MoscowbFri, 08 Feb 2013 23:05:48 +0400000000pmFri, 08 Feb 2013 23:05:48 +040013 2013, 23:05:48
-1

Это очень хорошее приложение для скриптов Google Script: https: //script. google.com/macros/s/AKfycbxbGNGajrxv-HbX2sVY2OTu7yj9VvxlOMOeQblZFuq7rYm7uyo/exec

с журналами реального времени и селектором папок.

ответил Randy Sugianto 8 J0000006Europe/Moscow 2016, 08:20:19

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132