Puis-je dupliquer un dossier dans Google Drive?

44

Je dois dupliquer un dossier complet sur mon Google Drive une fois par semaine. Il y a environ 25 fichiers dans le dossier. Quel est un moyen facile de faire cela?

Dude2012
la source
De l'interface Web, je suppose. Ce serait académique si vous utilisez le client et synchronisez vers un dossier sur votre PC.
ale
Voulez-vous simplement sauvegarder les éléments dans ce dossier? ou essayez-vous de l'ajouter à un autre compte Google? Avez-vous besoin de tout le contenu du dossier ou est-ce que seuls les pointeurs le feront?
William
Je devais le dupliquer parce que je voulais avoir différentes autorisations, pour cela, je devais avoir des environnements séparés. Mais utiliser google drive pour PC a bien fonctionné!
Dude2012
Copier le dossier plug-in Chrome: chrome.google.com/webstore/detail/copy-folder/…
Simon Woodside

Réponses:

19

Si vous utilisez l'application Google Drive sur votre PC, vous pouvez copier et coller le dossier dans le répertoire Google Drive, ce qui le copierait. Je ne crois pas qu'il soit possible de le faire à partir de l'application Web.

ComputerLocus
la source
4
Malheureusement pour les utilisateurs de Linux, jusqu'à présent, Google ne prend pas en charge "Google Drive Application". Par conséquent, ils doivent utiliser quelque chose appelé " grive "
iammilind
Va-t-il re-télécharger l'intégralité du nouveau dossier sur le Web ou sait-il que le contenu du dossier est identique et le dupliquer sans un re-upload complet?
Julian
@ Julian, je suppose que cela remet en question le tout.
ComputerLocus
Je viens de confirmer qu'il remet effectivement tous les fichiers. Bummer.
Julian
sans l'application, il est également possible de cliquer avec le bouton droit de la souris - télécharger le dossier au format zip et le télécharger après la désarchivage
kamidude
10

Vous avez écrit un script d'application juste pour résoudre ce problème. Vous pouvez copier n'importe quel contenu de dossier ainsi que sa structure. Le script aidera à éliminer le besoin d’application de bureau Google Drive. En ajoutant des déclencheurs, vous pouvez même automatiser le processus.

GDrive Copy Dossier Structure / Script de contenu

Copier la structure du dossier dans Google Drive

Notez s'il vous plaît :

  • cela ajoute également le suffixe _copyà tous les sous-dossiers
  • Le folder_you_want_copied_copyest dans la hiérarchie parentale la plus élevée de votre Google Drive. Par conséquent, si vous avez copié un sous-dossier de votre lecteur, il bouillonnera au plus haut niveau lors de la copie.
Shunmugh Sundaram
la source
Fonctionnalité super cool, fonctionnait parfaitement même pour les très gros dossiers avec des centaines de sous-dossiers et des milliers de fichiers (certains étaient très volumineux). Merci Shunmugh!
Kubusz
3
ajoute également le suffixe "_copy" à tous les sous-dossiers, beurk!
Manas
5

Si vous êtes dans l'interface Web de Google Drive ...

  1. Créez un nouveau dossier et nommez-le comme vous voulez.

  2. Allez dans le dossier pré-existant, sélectionnez tous les fichiers, cliquez avec le bouton droit et appuyez sur copier.

  3. Sélectionnez toutes les copies, cliquez avec le bouton droit de la souris et cliquez sur déplacer pour. Sélectionnez le nouveau dossier.

Notez que cette méthode ne fonctionnera pas si le dossier que vous souhaitez copier contient des sous-dossiers.

Brandon
la source
4
Il n'y a pas d'option "copier" dans le menu contextuel. Il y a "faire une copie". Ce que vous voulez dire, c'est faire une copie de tous les fichiers, puis mettre en surbrillance les copies et les déplacer dans le nouveau dossier.
Blisterpeanuts
Il faut également renommer tous les fichiers après les avoir déplacés dans le nouveau dossier pour supprimer le préfixe "Copie de".
Tom
Cela se traduit par tous les fichiers ayant "Copie de" préfixés aux noms de fichiers.
Elijah Lynn
@Blisterpeanuts Il n'y a pas non plus de "copie" si vous voulez copier un dossier, même s'il est vide.
Michael
Si vous déplacez un groupe de fichiers par glisser-déposer tout en maintenant la touche Ctrl enfoncée, un "+" apparaît à côté du pointeur de la souris et semble fonctionner, mais les fichiers "copiés" ne sont que des liens fixes . Ils ont le même identifiant et, si vous les supprimez, ils seront supprimés. à la fois cette copie et le fichier original , ayant besoin de restaurer à partir d'activité récente. Autant que je sache, c'est un bug sur Google Drive.
Pablo Un
3

Réponse très tardive pour le PO, et je pense même pas possible au moment de demander, mais c'est ce que je fais aujourd'hui:

  1. Sélectionnez le dossier que je veux dupliquer.
  2. Cliquez dessus dessus, puis choisissez "Télécharger" dans le menu contextuel.
  3. Mon navigateur enregistre l'archive compressée dans un répertoire temporaire
  4. Extraire le dossier de l'archive et lui donner un nouveau nom
  5. Retour en voiture; Cliquez sur le gros bouton bleu Nouveau et sélectionnez "Téléchargement du dossier" dans le menu déroulant.
  6. De retour dans mon ordinateur; récupérez le dossier nouvellement nommé et faites-le glisser dans Drive.
  7. Tirer la toilette

Remarque: il s'agit d'une solution lorsque vous avez beaucoup de petits fichiers et sous-dossiers qui forment ensemble un fichier compressé de taille réduite. Son utilité diminue à mesure que la taille totale du fichier compressé augmente.

Martin Bramwell
la source
1
Le principal problème de cette solution - mis à part le besoin évident de disposer de suffisamment d'espace pour stocker l'intégralité du contenu de votre lecteur localement, à deux reprises (compressé et extrait) - est que si elle exporte tous les documents Google au format de document MS OpenOffice approprié, puis lorsque vous les rechargez, vous devez les reconvertir aux formats Google et résoudre tous les problèmes de formatage que cela entraîne.
Guss
3

Je préfère m'abstenir d'autoriser des tiers à accéder à mon Drive à moins que je ne sois obligé de le faire, comme Lucky 711 , j'ai écrit mon propre script. Je le laisse ici pour les futurs aventuriers des résultats Google. Il va copier le dossier et tout son contenu. Pour mon cas d'utilisation, je l'ai écrit pour gérer les fichiers avec plusieurs parents en ajoutant simplement le dossier copié en tant que nouveau parent. Si vous ne le souhaitez pas, supprimez la partie "Compter les parents qui ne sont pas ce parent".

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

}

Pour référence, si vous voulez créer de nouvelles copies de fichiers avec plusieurs parents plutôt que de simplement ajouter le nouveau dossier en tant que autre parent, le code le plus court ressemblera à ceci:

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

}
Rôti d'ingénieur
la source
Comment exécutez-vous ce script? Ou, comment obtenez-vous les paramètres d'entrée?
roydukkey
Ses entrées sont l’ID du dossier que vous voulez copier, l’ID du dossier dans lequel vous voulez créer la copie et le nom que vous voulez lui attribuer. Pour obtenir l'ID d'un dossier, accédez à celui-ci et regardez à la fin de l'URL. C'est probablement quelque chose comme 1jVlkj------------------------Gk3D7sauf que tous les tirets sont des caractères. Cette chaîne de charabia est l'identifiant unique attribué par Google. Une fois que vous avez les trois entrées, vous appelez cette fonction depuis une autre fonction avec quelque chose commecopyFolderAndContentsToFolder('superLongIdString','anotherLongIdString','NewFolderName')
Engineer Toast
C'est presque parfait, mais dans mon cas, j'ai des fichiers qui sont liés à des dossiers différents. Ainsi, au lieu de copier le fichier, il ne fait que copier le lien.
roydukkey
Si vous voulez parler de fichiers qui se trouvent dans plusieurs emplacements (c'est-à-dire avoir plusieurs parents), cela est abordé dans le message. Vous pouvez copier la countOfOtherParents++;ligne seulement et ça le fera. Pour mon cas d'utilisation, je voulais explicitement que ces fichiers obtiennent simplement un autre parent plutôt que de créer une nouvelle copie du fichier. Si vous parlez de fichiers faisant office de liens hypertexte ouvrant d'autres dossiers, je ne savais pas que vous pouviez le faire.
Ingénieur Toast
IE, le changement minimum serait ceci mais le code "plus propre" serait ceci
Ingénieur Toast
3

Vous pouvez utiliser le module complémentaire " Copier le dossier " pour Google Spreadsheets:

  1. créer une feuille de calcul Google
  2. cliquez sur Add-ons > Get add-onset ajoutez l'add-on 'Copy Folder'
  3. sélectionnez le dossier que vous souhaitez copier
  4. terminé

Voir le tutoriel vidéo .

Vous pouvez également utiliser Google Script Script de la boutique en ligne Google Chrome pour obtenir ce résultat. Celui-ci ne nécessite pas la création d'une feuille de calcul Google.

abbood
la source
7
Cela nécessite de laisser l'addon "Affichez et lisez votre courrier électronique"
Michael Cole
@MichaelCole, ainsi que d'autres autorisations problématiques: gestion de feuilles de calcul, chargement de sites Web arbitraires et, pire encore: accès hors connexion. Je recommande à personne de l'installer jusqu'à ce que les problèmes d'autorisation soient résolus.
Guss
Ah .. c'est le courageux New post Cambridge analytica dans
lequel
La feuille de calcul à gérer consiste à ajouter un fichier journal de feuille de calcul pendant son exécution.
Ajay le
@Ajay C'était mon mauvais. Merci de nous avoir soumis de nouveau.
jonsca
1

J'utilise plusieurs machines et je ne veux pas installer l'application de lecteur sur toutes les machines. J'ai donc écrit le script ci-dessous pour le copier sur le site. C'est moche et basique mais ça marche. Il ne copie qu'un dossier et ses fichiers, pas des sous-dossiers. Je suis sûr que des améliorations sont possibles, alors n'hésitez pas à prendre cela et à l'améliorer, mais j'espère que cela sera au moins utile dès le début.

Par un commentaire ci-dessous, il s'agit d'un script Google Apps. Pour l’utiliser, ouvrez l’application de script Google, puis copiez et collez tout le code dans un script vierge. Après cela, cliquez sur l'option de publication dans le menu, puis sélectionnez déployer en tant qu'application Web. Vous pouvez ensuite cliquer sur le lien Dernier code ou copier et coller l'URL dans votre navigateur. Ensuite, vous trouverez une boîte où vous pouvez taper le dossier que vous souhaitez copier et le bouton de copie. Cela devrait créer une copie du dossier que vous avez nommé et une copie de tous les fichiers qu’elle contient.

Remarque: il ne copiera pas les sous-dossiers, mais uniquement les fichiers.

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

}
Chanceux 711
la source
-1

Pour dupliquer un dossier, faites-le glisser dans un autre dossier contenant le bouton CTRL.

Aborruso
la source
9
Cela ne fait pas double emploi cela crée simplement un pointeur. J'ai testé cela en effectuant un Ctrl-glisser-déposer d'un dossier vers plusieurs emplacements différents, puis j'ai créé un fichier dans le dossier. Le fichier est visible à chaque emplacement.
ale
C'est vrai. Ils appellent cela "ajouter un dossier"
th3an0maly
4
-1, ça ne marche pas.
Pacerier