it-swarm.com.de

Kann ich einen Ordner in Google Drive duplizieren?

Ich muss einmal pro Woche einen ganzen Ordner auf meinem Google Drive duplizieren. Der Ordner enthält ca. 25 Dateien. Was ist eine einfache Möglichkeit, dies zu tun?

44
Dude2012

Wenn Sie die Google Drive-Anwendung auf Ihrem PC verwenden, können Sie den Ordner kopieren und in das Google Drive-Verzeichnis einfügen. Dadurch wird er kopiert. Ich glaube nicht, dass dies über die Webanwendung möglich ist.

19
ComputerLocus

Habe ein App-Skript geschrieben, um dieses Problem zu beheben. Sie können jeden Ordnerinhalt sowie die darin enthaltene Struktur kopieren. Mithilfe von Skripts können Sie die Google Drive-Desktop-App überflüssig machen. Durch Hinzufügen von Triggern können Sie den Prozess sogar automatisieren.

GDrive Copy Ordnerstruktur/Inhaltsskript

Copy Folder Structure in Google Drive

Bitte beachten Sie :

  • dadurch wird allen Unterordnern das Suffix _copy hinzugefügt
  • Der folder_you_want_copied_copy befindet sich in der höchsten übergeordneten Hierarchie Ihres Google Drive. Wenn Sie also einen Unterordner Ihres Laufwerks kopiert haben, sprudelt er beim Kopieren auf die höchste Ebene
10

Wenn Sie sich in der Google Drive-Weboberfläche befinden ...

  1. Erstellen Sie einen neuen Ordner und geben Sie ihm den gewünschten Namen.

  2. Gehen Sie in den vorhandenen Ordner, wählen Sie alle Dateien aus, klicken Sie mit der rechten Maustaste und klicken Sie auf Kopieren.

  3. Wählen Sie alle Kopien aus, klicken Sie mit der rechten Maustaste und klicken Sie auf Verschieben nach. Wählen Sie den neuen Ordner.

Beachten Sie, dass diese Methode nicht funktioniert, wenn der Ordner, den Sie kopieren möchten, Unterordner enthält.

5
Brandon

Ich verzichte lieber darauf, Dritten Zugriff auf mein Laufwerk zu gewähren, es sei denn, ich habe mein eigenes Skript geschrieben, z. B. Lucky 711 . Ich lasse es hier für zukünftige Abenteurer von Google-Ergebnissen. Der Ordner und sein gesamter Inhalt werden kopiert. Für meinen Anwendungsfall habe ich es geschrieben, um Dateien mit mehreren übergeordneten Elementen zu verarbeiten, indem ich den kopierten Ordner einfach als neues übergeordnetes Element hinzufügte. Wenn Sie das nicht möchten, lassen Sie den Teil "Zählen Sie die Eltern, die nicht diese Eltern sind" fallen.

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());
  }

}

Wenn Sie als Referenz neue Kopien von Dateien mit mehreren übergeordneten Elementen erstellen möchten, anstatt den neuen Ordner nur als weiteres übergeordnetes Element hinzuzufügen, sieht der kürzere Code folgendermaßen aus:

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());
  }

}
3
Engineer Toast

Sehr späte Antwort für das OP, und ich denke, zum Zeitpunkt des Fragens nicht einmal möglich, aber das ist, was ich heute mache:

  1. Wählen Sie den Ordner aus, den Sie duplizieren möchten.
  2. Zweitens klicken Sie darauf und wählen Sie dann "Herunterladen" aus dem Einblendmenü
  3. Lassen Sie meinen Browser das komprimierte Archiv in einem temporären Verzeichnis speichern
  4. Extrahieren Sie den Ordner aus dem Archiv und geben Sie ihm einen neuen Namen
  5. Zurück in Drive; Klicken Sie auf die große blaue Schaltfläche "Neu" und wählen Sie "Ordner hochladen" aus dem Dropdown-Menü.
  6. Zurück in meinem Computer; Nehmen Sie den neu benannten Ordner und ziehen Sie ihn zurück in Drive.
  7. Die Toilette spülen

Hinweis: Dies ist eine Lösung, wenn Sie viele kleine Dateien und Unterordner haben, die zusammen eine klein komprimierte Datei ergeben. Die Nützlichkeit nimmt mit zunehmender Größe der komprimierten Datei ab.

3
Martin Bramwell

Sie können das Add-On " Ordner kopieren " für Google Spreadsheets verwenden:

  1. erstellen Sie eine Google-Tabelle
  2. klicken Sie auf Add-ons > Get add-ons und fügen Sie das Add-On "Copy Folder" hinzu
  3. wählen Sie den Ordner aus, den Sie kopieren möchten
  4. getan

Siehe das Video-Tutorial .

Oder dieses chrome Google App Script kann verwendet werden, um dieses Ergebnis zu erzielen. Hierfür muss keine Google-Tabelle erstellt werden.

3
abbood

Ich verwende mehrere Computer und möchte die Laufwerks-App nicht auf allen Computern installieren. Daher habe ich das folgende Skript geschrieben, das auf der Site kopiert werden soll. Es ist hässlich und einfach, aber es funktioniert. Es kopiert nur einen Ordner und seine Dateien, keine Unterordner. Ich bin mir sicher, dass es Verbesserungspotenzial gibt. Nehmen Sie das also und verbessern Sie es, aber ich hoffe, es ist zumindest von Anfang an hilfreich.

Nach einem Kommentar unten ist dies ein Google Apps-Skript. Sie können es verwenden, indem Sie die Google Scripting-App öffnen und dann den gesamten Code kopieren und in ein leeres Skript einfügen. Klicken Sie anschließend im Menü auf die Option zum Veröffentlichen und wählen Sie Als Webanwendung bereitstellen aus. Sie können dann auf den Link Letzter Code klicken oder die URL kopieren und in Ihren Browser einfügen. Anschließend finden Sie ein Feld, in das Sie den zu kopierenden Ordner und die Schaltfläche "Kopieren" eingeben können. Das sollte eine Kopie des von Ihnen benannten Ordners und eine Kopie aller darin enthaltenen Dateien erstellen.

Hinweis: Es werden keine Unterordner kopiert, nur die Dateien.

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)
  }

}
1
Lucky 711