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?
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?
Antworten:
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.
Habe ein App-Skript geschrieben, um dieses Problem zu beheben. Sie können jeden Ordnerinhalt sowie die darin enthaltene Struktur kopieren. Mithilfe von Skripten 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
Bitte beachten Sie :
_copy
Dadurch werden auch allen Unterordnern Suffixe hinzugefügtfolder_you_want_copied_copy
Symbol befindet sich in der höchsten übergeordneten Hierarchie Ihres Google Drive. Wenn Sie also einen Unterordner Ihres Laufwerks kopiert haben, sprudelt es beim Kopieren auf die höchste EbeneWenn Sie sich in der Google Drive-Weboberfläche befinden ...
Erstellen Sie einen neuen Ordner und geben Sie ihm den gewünschten Namen.
Gehen Sie in den bereits vorhandenen Ordner, wählen Sie alle Dateien aus, klicken Sie mit der rechten Maustaste und klicken Sie auf Kopieren.
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.
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:
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.
Ich verzichte lieber darauf, Dritten Zugriff auf mein Laufwerk zu gewähren, es sei denn, ich habe wie Lucky 711 mein eigenes Skript geschrieben. 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 nur den neuen Ordner 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());
}
}
1jVlkj------------------------Gk3D7
außer dass alle Bindestriche Zeichen sind. Diese Kauderwelsch-Zeichenfolge ist die eindeutige ID, die Google zugewiesen hat. Sobald Sie die drei Eingänge haben, würden Sie diese Funktion von einer anderen Funktion mit so etwas wiecopyFolderAndContentsToFolder('superLongIdString','anotherLongIdString','NewFolderName')
countOfOtherParents++;
Zeile kopieren und das wird es tun. In meinem Anwendungsfall wollte ich ausdrücklich, dass diese Dateien einfach einem anderen übergeordneten Element zugeordnet werden, anstatt eine neue Kopie der Datei zu erstellen. Wenn Sie Dateien meinen, die als Hyperlinks zum Öffnen anderer Ordner fungieren, dann wusste ich nicht, dass Sie das tun könnten.
Sie können das Add-On " Ordner kopieren " für Google Spreadsheets verwenden:
Add-ons > Get add-ons
und fügen Sie das 'Copy Folder' Add-On hinzu Siehe das Video-Tutorial .
Mit diesem Chrome-Webshop-Google-App-Skript können Sie dieses Ergebnis erzielen. Hierfür muss keine Google-Tabelle erstellt werden.
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 noch Verbesserungspotenzial gibt. Nehmen Sie das 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)
}
}
Um einen Ordner zu duplizieren, ziehen Sie ihn mit gedrückter STRG-Taste auf einen anderen Ordner.
Dies ist eine sehr gute Google Script Macros-App: https://script.google.com/macros/s/AKfycbxbGNGajrxv-HbX2sVY2OTu7yj9VvxlOMOeQblZFuq7rYm7uyo/exec
mit Echtzeit-Protokollen und Ordnerauswahl.