मुझे सप्ताह में एक बार अपने Google ड्राइव पर एक संपूर्ण फ़ोल्डर को डुप्लिकेट करने की आवश्यकता है। फ़ोल्डर में लगभग 25 फाइलें हैं। ऐसा करने का एक आसान तरीका क्या है?
मुझे सप्ताह में एक बार अपने Google ड्राइव पर एक संपूर्ण फ़ोल्डर को डुप्लिकेट करने की आवश्यकता है। फ़ोल्डर में लगभग 25 फाइलें हैं। ऐसा करने का एक आसान तरीका क्या है?
जवाबों:
यदि आप अपने पीसी पर Google ड्राइव एप्लिकेशन का उपयोग कर रहे हैं, तो आप फ़ोल्डर को Google ड्राइव निर्देशिका में कॉपी और पेस्ट कर सकते हैं, और यह इसे कॉपी करेगा। मुझे विश्वास नहीं है कि वेब एप्लिकेशन से ऐसा करना संभव है।
इस समस्या को दूर करने के लिए एक ऐप स्क्रिप्ट लिखी है। आप किसी भी फ़ोल्डर सामग्री के साथ-साथ उसमें संरचना की प्रतिलिपि बना सकते हैं। स्क्रिप्ट Google ड्राइव डेस्कटॉप ऐप की आवश्यकता को समाप्त करने में मदद करेगी। ट्रिगर जोड़कर आप प्रक्रिया को स्वचालित भी कर सकते हैं।
GDrive कॉपी फ़ोल्डर संरचना / सामग्री स्क्रिप्ट
कृपया ध्यान दें :
_copy
सभी सबफ़ोल्डर्स के लिए प्रत्यय भी जोड़ता हैfolder_you_want_copied_copy
अपनी Google डिस्क के उच्चतम माता पिता पदानुक्रम में है, इसलिए अगर आप अपने ड्राइव का एक सबफ़ोल्डर की नकल की है, यह जब कॉपी किया उच्चतम स्तर तक बबल सामने होगायदि आप Google डिस्क वेब इंटरफ़ेस में हैं ...
एक नया फ़ोल्डर बनाएं और उसे नाम दें जो आप चाहते हैं।
पहले से मौजूद फ़ोल्डर में जाएं, सभी फाइलों का चयन करें, राइट क्लिक करें और हिट कॉपी करें।
सभी प्रतियों का चयन करें, राइट क्लिक करें और हिट करने के लिए कदम। नया फ़ोल्डर चुनें।
ध्यान दें कि यह विधि काम नहीं करेगी यदि आप जिस फ़ोल्डर को कॉपी करना चाहते हैं उसमें सबफ़ोल्डर है।
ओपी के लिए बहुत देर से जवाब, और मुझे लगता है कि पूछने के समय भी संभव नहीं है, लेकिन आज मैं यही करता हूं:
नोट: यह एक समाधान है जब आपके पास बहुत सारी छोटी फाइलें और उप-फ़ोल्डर होते हैं जो एक साथ एक छोटी सी संकुचित फ़ाइल के लिए बनाते हैं। कुल संपीड़ित फ़ाइल का आकार बढ़ने पर इसकी उपयोगिता कम हो जाती है।
जब तक मुझे ऐसा नहीं करना है, मैं तीसरे पक्ष को अपनी ड्राइव तक पहुंचने से रोकना पसंद करता हूं, जैसे लकी 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());
}
}
1jVlkj------------------------Gk3D7
सभी डैश वर्ण हैं। वह अस्पष्ट स्ट्रिंग वह अद्वितीय आईडी है जिसे Google ने असाइन किया है। एक बार जब आपके पास तीन इनपुट होते हैं, तो आप इस फ़ंक्शन को किसी अन्य फ़ंक्शन से कॉल करेंगे जैसेcopyFolderAndContentsToFolder('superLongIdString','anotherLongIdString','NewFolderName')
countOfOtherParents++;
लाइन को केवल बाहर कॉपी कर सकते हैं और यही करेंगे। मेरे उपयोग के मामले के लिए, मैं स्पष्ट रूप से उन फाइलों को चाहता था जो फ़ाइल की नई प्रति बनाने के बजाय दूसरे माता-पिता को प्राप्त करें। यदि आपका मतलब उन फाइलों से है जो हाइपरलिंक्स की तरह काम करती हैं जो अन्य फ़ोल्डर्स को खोलती हैं, तो मुझे नहीं पता था कि आप ऐसा कर सकते हैं।
आप Google स्प्रेडशीट के लिए " कॉपी फ़ोल्डर " ऐड-ऑन का उपयोग कर सकते हैं :
Add-ons > Get add-ons
और 'कॉपी फ़ोल्डर' ऐड-ऑन जोड़ें वीडियो ट्यूटोरियल देखें ।
या, इस परिणाम को प्राप्त करने के लिए इस क्रोम वेब स्टोर Google ऐप स्क्रिप्ट का उपयोग किया जा सकता है। इस व्यक्ति को Google स्प्रेडशीट के निर्माण की आवश्यकता नहीं है।
मैं कई मशीनों का उपयोग करता हूं और उन सभी पर ड्राइव ऐप नहीं डालना चाहता हूं इसलिए मैंने साइट पर कॉपी करने के लिए नीचे स्क्रिप्ट लिखी है। यह बदसूरत और बुनियादी है लेकिन यह काम करता है। यह केवल एक फ़ोल्डर और उसकी फ़ाइलों को कॉपी करता है, उप फ़ोल्डरों को नहीं। मुझे यकीन है कि सुधार के लिए जगह है, इसलिए इसे लेने और इसे बेहतर बनाने के लिए स्वतंत्र महसूस करें, लेकिन मुझे उम्मीद है कि यह शुरुआत से कम से कम सहायक है।
नीचे एक टिप्पणी के अनुसार, यह एक 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)
}
}
किसी फ़ोल्डर को डुप्लिकेट करने के लिए CTRL बटन दबाए रखने वाले किसी अन्य फ़ोल्डर पर खींचें और छोड़ें।
यह एक बहुत अच्छा Google स्क्रिप्ट मैक्रोज़ ऐप है: https://script.google.com/macros/s/AKfycbxbGNGajrxv-HbX2sVY2OTu7yj9VvxlOMOQblZFuq7rYm7uyo/exec
वास्तविक समय लॉग और फ़ोल्डर चयनकर्ता के साथ।