क्या मैं Google डिस्क में किसी फ़ोल्डर की नक़ल कर सकता हूँ?


44

मुझे सप्ताह में एक बार अपने Google ड्राइव पर एक संपूर्ण फ़ोल्डर को डुप्लिकेट करने की आवश्यकता है। फ़ोल्डर में लगभग 25 फाइलें हैं। ऐसा करने का एक आसान तरीका क्या है?


वेब इंटरफ़ेस से मैं मानता हूँ। यदि आप क्लाइंट का उपयोग कर रहे हैं और अपने पीसी पर एक फ़ोल्डर में सिंक कर रहे हैं तो यह अकादमिक होगा।
ale

क्या आप उस फ़ोल्डर में सामान वापस करना चाहते हैं? या क्या आप इसे किसी अन्य Google खाते में जोड़ने का प्रयास कर रहे हैं? क्या आपको फ़ोल्डर की संपूर्ण सामग्री की आवश्यकता है या केवल संकेतक करेंगे?
विलियम

मुझे इसे डुप्लिकेट करने की आवश्यकता थी क्योंकि मैं उन पर अलग-अलग अनुमति चाहता हूं, इसके लिए मुझे अलग-अलग वातावरण की आवश्यकता है। लेकिन PC के लिए google ड्राइव का उपयोग करना ठीक रहा!
Dude2012

कॉपी क्रोम क्रोम प्लगइन: chrome.google.com/webstore/detail/copy-folder/…
शमौन वुडसाइड

जवाबों:


19

यदि आप अपने पीसी पर Google ड्राइव एप्लिकेशन का उपयोग कर रहे हैं, तो आप फ़ोल्डर को Google ड्राइव निर्देशिका में कॉपी और पेस्ट कर सकते हैं, और यह इसे कॉपी करेगा। मुझे विश्वास नहीं है कि वेब एप्लिकेशन से ऐसा करना संभव है।


4
दुर्भाग्य से लिनक्स उपयोगकर्ताओं के लिए, आज तक Google के पास "Google ड्राइव एप्लिकेशन" के लिए समर्थन नहीं है। इसलिए वे कुछ "कहा जाता है उपयोग करने की आवश्यकता grive "
iammilind

क्या यह वेब पर पूरे नए फ़ोल्डर को फिर से अपलोड करेगा, या क्या यह पता है कि फ़ोल्डर की सामग्री समान है और यह पूर्ण पुन: अपलोड के बिना इसे डुप्लिकेट करता है?
जूलियन

@ जूलियन मुझे लगता है कि यह पूरी बात को फिर से लोड करता है।
कम्प्यूटरलोक

मैंने अभी पुष्टि की है कि यह वास्तव में सभी फाइलों को पुनः लोड करता है। ओह।
जूलियन

एप्लिकेशन के बिना, राइट क्लिक करना भी संभव है - फ़ोल्डर को जिप के रूप में डाउनलोड करें और इसे
अनारकली

10

इस समस्या को दूर करने के लिए एक ऐप स्क्रिप्ट लिखी है। आप किसी भी फ़ोल्डर सामग्री के साथ-साथ उसमें संरचना की प्रतिलिपि बना सकते हैं। स्क्रिप्ट Google ड्राइव डेस्कटॉप ऐप की आवश्यकता को समाप्त करने में मदद करेगी। ट्रिगर जोड़कर आप प्रक्रिया को स्वचालित भी कर सकते हैं।

GDrive कॉपी फ़ोल्डर संरचना / सामग्री स्क्रिप्ट

Google ड्राइव में फ़ोल्डर संरचना की प्रतिलिपि बनाएँ

कृपया ध्यान दें :

  • यह _copyसभी सबफ़ोल्डर्स के लिए प्रत्यय भी जोड़ता है
  • folder_you_want_copied_copyअपनी Google डिस्क के उच्चतम माता पिता पदानुक्रम में है, इसलिए अगर आप अपने ड्राइव का एक सबफ़ोल्डर की नकल की है, यह जब कॉपी किया उच्चतम स्तर तक बबल सामने होगा

सुपर कूल फीचर, सैकड़ों उप-फ़ोल्डर्स और हजारों फाइलों (कुछ अतिरिक्त बड़े थे) के साथ बहुत बड़े फ़ोल्डरों के लिए भी पूरी तरह से काम किया। थैंक यू शुंमघ!
कुबूस

3
सभी सबफ़ोल्डर्स, वाइक के लिए प्रत्यय "_copy" भी जोड़ता है!
मानस

5

यदि आप Google डिस्क वेब इंटरफ़ेस में हैं ...

  1. एक नया फ़ोल्डर बनाएं और उसे नाम दें जो आप चाहते हैं।

  2. पहले से मौजूद फ़ोल्डर में जाएं, सभी फाइलों का चयन करें, राइट क्लिक करें और हिट कॉपी करें।

  3. सभी प्रतियों का चयन करें, राइट क्लिक करें और हिट करने के लिए कदम। नया फ़ोल्डर चुनें।

ध्यान दें कि यह विधि काम नहीं करेगी यदि आप जिस फ़ोल्डर को कॉपी करना चाहते हैं उसमें सबफ़ोल्डर है।


4
राइट-क्लिक मेनू पर कोई "कॉपी" विकल्प नहीं है। "प्रतिलिपि बनाएँ" है। आपका क्या मतलब है, सभी फ़ाइलों की एक प्रति बनाएं, फिर प्रतियों को हाइलाइट करें और उन्हें नए फ़ोल्डर में ले जाएं।
ब्लिस्टरपिनट्स

"उप-प्रतिलिपि" उपसर्ग को हटाने के लिए उन्हें नए फ़ोल्डर में ले जाने के बाद सभी फ़ाइलों का नाम बदलने की भी आवश्यकता है।
टॉम

यह उन सभी फाइलों में परिणाम करता है जिनमें "कॉपी" की फाइलनेम के लिए उपसर्ग होता है।
एलिय्याह लिन

@Blisterpeanuts यदि आप किसी फ़ोल्डर को कॉपी करना चाहते हैं, तो भी कोई "प्रतिलिपि बनाएँ" नहीं है - भले ही वह खाली हो। यदि आप खाली निर्देशिका नामों के एक टेम्पलेट के साथ शुरू करना चाहते हैं, तो शायद ही
माइकल

यदि आप माउस को दबाते हुए Ctrl के पास "+" दिखाई देते हैं, तो ड्रैग एंड ड्रॉप के साथ फाइल का एक समूह चलता है और यह काम करने लगता है, लेकिन "कॉपी की गई" फाइलें सिर्फ हार्डलिंक हैं , उनके पास एक ही आईडी है, और यदि आप हटाते हैं तो वे हटा देंगे दोनों की प्रतिलिपि और मूल फ़ाइल , हाल की गतिविधि से पुनर्स्थापित करने की आवश्यकता है। AFAIK यह Google ड्राइव पर एक बग है।
पाब्लो ए

3

ओपी के लिए बहुत देर से जवाब, और मुझे लगता है कि पूछने के समय भी संभव नहीं है, लेकिन आज मैं यही करता हूं:

  1. उस फ़ोल्डर का चयन करें जिसे मैं डुप्लिकेट करना चाहता हूं।
  2. माध्यमिक उस पर क्लिक करें, और फिर पॉप-अप मेनू से "डाउनलोड" चुनें
  3. मेरे ब्राउज़र को अस्थायी संग्रह में ज़िपित संग्रह को सहेजना है
  4. संग्रह से फ़ोल्डर निकालें, और इसे एक नया नाम दें
  5. वापस ड्राइव में; बड़ा नीला नया बटन क्लिक करें, और ड्रॉप डाउन मेनू से "फ़ोल्डर अपलोड" चुनें।
  6. मेरे कंप्यूटर में वापस; नए नामित फ़ोल्डर को पकड़ो और उसे ड्राइव में वापस खींचें।
  7. शौचालय को पानी से साफ करना

नोट: यह एक समाधान है जब आपके पास बहुत सारी छोटी फाइलें और उप-फ़ोल्डर होते हैं जो एक साथ एक छोटी सी संकुचित फ़ाइल के लिए बनाते हैं। कुल संपीड़ित फ़ाइल का आकार बढ़ने पर इसकी उपयोगिता कम हो जाती है।


1
इस समाधान की मुख्य समस्या - स्पष्ट रूप से अलग से आपके संपूर्ण ड्राइव सामग्री को स्थानीय रूप से संग्रहीत करने के लिए पर्याप्त स्थान होने की आवश्यकता है, दो बार (दोनों संपीड़ित और निकाले गए) - यदि यह सभी Google डॉक्स को उचित एमएस ओपनऑफ़िस दस्तावेज़ प्रारूप में निर्यात करेगा, और फिर जब आप उन्हें पुनः लोड करते हैं तो आपको उन्हें Google स्वरूपों में वापस बदलना होगा और उन सभी स्वरूपण मुद्दों से निपटना होगा जो इसके कारण होते हैं।
Guss

3

जब तक मुझे ऐसा नहीं करना है, मैं तीसरे पक्ष को अपनी ड्राइव तक पहुंचने से रोकना पसंद करता हूं, जैसे लकी 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());
  }

}

आप इस स्क्रिप्ट को कैसे चलाते हैं? या, आपको इनपुट पैरामीटर कैसे मिलते हैं?

यह इनपुट उस फ़ोल्डर की आईडी है जिसे आप कॉपी करना चाहते हैं, उस फ़ोल्डर की आईडी जिसमें आप कॉपी बनाना चाहते हैं, और वह नाम जिसे आप कॉपी करना चाहते हैं। किसी फ़ोल्डर की आईडी प्राप्त करने के लिए, उस पर नेविगेट करें और URL के अंत में देखें। यह शायद कुछ ऐसा है जैसे 1jVlkj------------------------Gk3D7सभी डैश वर्ण हैं। वह अस्पष्ट स्ट्रिंग वह अद्वितीय आईडी है जिसे Google ने असाइन किया है। एक बार जब आपके पास तीन इनपुट होते हैं, तो आप इस फ़ंक्शन को किसी अन्य फ़ंक्शन से कॉल करेंगे जैसेcopyFolderAndContentsToFolder('superLongIdString','anotherLongIdString','NewFolderName')
इंजीनियर टोस्ट

यह लगभग सही है, लेकिन मेरे मामले में मेरे पास ऐसी फाइलें हैं जो विभिन्न फ़ोल्डरों से जुड़ी हैं। इसलिए फाइल को कॉपी करने के बजाय, यह लिंक को कॉपी करता है।
रॉयडुकक

यदि आप ऐसी फाइलों का अर्थ रखते हैं जो कई स्थानों पर मौजूद हैं (जैसे, कई माता-पिता), तो यह पोस्ट में संबोधित किया गया है। आप countOfOtherParents++;लाइन को केवल बाहर कॉपी कर सकते हैं और यही करेंगे। मेरे उपयोग के मामले के लिए, मैं स्पष्ट रूप से उन फाइलों को चाहता था जो फ़ाइल की नई प्रति बनाने के बजाय दूसरे माता-पिता को प्राप्त करें। यदि आपका मतलब उन फाइलों से है जो हाइपरलिंक्स की तरह काम करती हैं जो अन्य फ़ोल्डर्स को खोलती हैं, तो मुझे नहीं पता था कि आप ऐसा कर सकते हैं।
इंजीनियर टोस्ट

आईई, कम से कम परिवर्तन होगा यह लेकिन "स्वच्छ" कोड होगा इस
इंजीनियर टोस्ट

3

आप Google स्प्रेडशीट के लिए " कॉपी फ़ोल्डर " ऐड-ऑन का उपयोग कर सकते हैं :

  1. Google स्प्रेडशीट बनाएं
  2. पर क्लिक करें Add-ons > Get add-onsऔर 'कॉपी फ़ोल्डर' ऐड-ऑन जोड़ें
  3. उस फ़ोल्डर का चयन करें जिसे आप कॉपी करना चाहते हैं
  4. किया हुआ

वीडियो ट्यूटोरियल देखें ।

या, इस परिणाम को प्राप्त करने के लिए इस क्रोम वेब स्टोर Google ऐप स्क्रिप्ट का उपयोग किया जा सकता है। इस व्यक्ति को Google स्प्रेडशीट के निर्माण की आवश्यकता नहीं है।


7
इसके लिए एडऑन को "अपना ईमेल देखें और पढ़ें"
माइकल कोल

@MichaelCole, और अन्य समस्याग्रस्त अनुमतियाँ: स्प्रैडशीट प्रबंधित करें, मनमानी वेबसाइटों को लोड करें और सभी को बदतर करें: ऑफ़लाइन पहुंच। जब तक अनुमति की समस्या ठीक नहीं हो जाती, मैं इसे स्थापित करने की सलाह देता हूं।
Guss

आह .. यह बहादुर नई पोस्ट कैम्ब्रिज एनालिटिका की दुनिया है जिसमें हम रहते हैं
'12:32

स्प्रैडशीट लॉग फ़ाइल को चलाने के दौरान, स्प्रैडशीट लॉग फ़ाइल को जोड़ना है।
अजय

@ अजय वो मेरा बुरा था। फिर से शुरू करने के लिए धन्यवाद।
jonsca

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

}

-1

किसी फ़ोल्डर को डुप्लिकेट करने के लिए CTRL बटन दबाए रखने वाले किसी अन्य फ़ोल्डर पर खींचें और छोड़ें।


9
वह नकल नहीं करता है; यह सिर्फ एक पॉइंटर बनाता है। मैंने एक फ़ोल्डर के Ctrl-drag-n-drop को अलग-अलग स्थानों के एक जोड़े को परीक्षण किया, फिर फ़ोल्डर में एक फ़ाइल बनाई, और फ़ाइल हर जगह दिखाई दे रही है।
एले

ये सही है। वे इसे "फोल्डर जोड़ना" कहते हैं
th3an0maly

4
-1, काम नहीं करता है।
पेसियर

-1

यह एक बहुत अच्छा Google स्क्रिप्ट मैक्रोज़ ऐप है: https://script.google.com/macros/s/AKfycbxbGNGajrxv-HbX2sVY2OTu7yj9VvxlOMOQblZFuq7rYm7uyo/exec

वास्तविक समय लॉग और फ़ोल्डर चयनकर्ता के साथ।


2
लिंक के आवश्यक भाग को उत्तर में जोड़ना अधिक सहायक होगा।
सेरेनाटस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.