Google Drive’daki bir klasörü çoğaltabilir miyim?


44

Google Drive’ımdaki bir klasörü haftada bir kez kopyalamam gerekiyor. Klasörde yaklaşık 25 dosya var. Bunu yapmanın kolay yolu nedir?


Web arayüzünden farz ediyorum. İstemciyi kullanıyorsanız ve PC'nizdeki bir klasörle senkronize ediyorsanız, bu akademik olacaktır.
ale,

O klasördeki şeyleri yedeklemek mi istiyorsun? veya başka bir google hesabına eklemeye mi çalışıyorsun? Klasörün tüm içeriğine mi ihtiyacınız var yoksa yalnızca işaretçiler mi yapacak?
William

Çoğaltmam gerekiyordu, çünkü üzerinde farklı izinler almak istiyorum, bunun için ayrı ortamlara ihtiyacım vardı. Ancak PC için google drive kullanarak iyi çalıştı!
Dude2012

Yanıtlar:


19

PC’nizde Google Drive uygulamasını kullanıyorsanız, klasörü Google Drive dizinine kopyalayıp yapıştırabilirsiniz, bu işlem onu ​​kopyalar. Bunu web uygulamasından yapmanın mümkün olduğuna inanmıyorum.


4
Ne yazık ki Linux kullanıcıları için, bugüne kadar Google "Google Drive Uygulaması" nı desteklememektedir. Bu nedenle " grive " denilen bir şey kullanmaları gerekir
iammilind

Tüm yeni klasörü web'e yeniden yükleyecek mi, yoksa klasörün içeriğinin aynı olduğunu biliyor mu ve tam bir yeniden yükleme yapmadan çoğaltıyor mu?
Julian

@Julian Her şeyi yeniden doldurduğunu varsayardım.
ComputerLocus

Ben sadece tüm dosyaları yeniden yüklediğini onayladım. Aylak.
Julian

uygulama olmadan, sağ tıklamak da mümkündür - klasörü zip olarak indirin ve unarchiving'den sonra yeniden yükleyin
kamidude 18:18

10

Sadece bu sorunu çözmek için bir Uygulama Komut Dosyası yazdınız. Herhangi bir klasör içeriğini ve içindeki yapıyı kopyalayabilirsiniz. Komut Dosyası, Google Drive masaüstü uygulamasına duyulan ihtiyacı ortadan kaldırmaya yardımcı olacaktır. Tetikleyiciler ekleyerek işlemi otomatikleştirebilirsiniz.

GDrive Kopyalama Klasörü Yapısı / İçerik Komut Dosyası

Google Drive'da Klasör Yapısını Kopyala

Lütfen aklınızda bulundurun :

  • bu aynı zamanda _copytüm alt klasörlere sonek ekler.
  • folder_you_want_copied_copyEğer sürücü bir alt klasör kopyalanmış eğer öyleyse en yüksek seviyeye kabarcık kadar kopyalanan ne zaman, Google Drive en yüksek üst hiyerarşide bulunan

Süper harika özelliği, yüzlerce alt klasör ve binlerce dosya içeren çok büyük klasörler için bile mükemmel çalıştı. Teşekkürler Shunmugh!
kubusz

3
ayrıca tüm alt klasörlere "_copy" ekini ekler, yikes!
manas

5

Google Drive web arayüzündeyseniz ...

  1. Yeni bir klasör oluşturun ve istediğinizi adlandırın.

  2. Önceden var olan klasöre gidin, tüm dosyaları seçin, sağ tıklayın ve kopyalayın.

  3. Tüm kopyaları seçin, sağ tıklayın ve düğmesine basın. Yeni Klasörü Seçin.

Kopyalamak istediğiniz klasörde alt klasörler varsa, bu yöntemin işe yaramayacağını unutmayın.


4
Sağ tıklama menüsünde "kopyala" seçeneği yoktur. "Bir kopya yap" var. Demek istediğim, tüm dosyaların bir kopyasını alın, ardından kopyaları vurgulayın ve yeni klasöre taşıyın.
Blisterpeanuts

Bir de "Kopyala" öneki kaldırmak için tüm dosyaları yeni klasöre taşıdıktan sonra yeniden adlandırmanız gerekir.
Tom

Bu, dosya adlarına "Kopyala" özelliğine sahip olan tüm dosyalara yol açar.
Elijah Lynn

@Blisterpeanuts Bir klasörü kopyalamak istiyorsanız, boş olsa bile "kopya oluştur" da yoktur. Can sıkıcı bir şekilde, boş bir dizin adları şablonu ile başlamak istiyorsanız
Michael

Ctrl tuşuna basarken sürükle ve bırak ile bir grup dosyayı taşırsanız, fare işaretçisinin yanında bir "+" görünür ve çalışıyor gibi görünür , ancak "kopyalanan" dosyalar yalnızca sabit bağlantılardır , aynı kimlikleri vardır ve silerseniz Hem bu kopyayı hem de orijinal dosyayı , en son etkinlikten geri yüklemek zorunda. AFAIK bu Google Drive'da bir hatadır.
Pablo,

3

OP için çok geç cevap, ve sorduğumda bile mümkün olmadığını düşünüyorum, ama bugün yaptığım şey şu:

  1. Çoğaltmak istediğim klasörü seçin.
  2. İkincil tıklayın ve ardından açılır menüden "İndir" i seçin.
  3. Tarayıcım sıkıştırılmış arşivi geçici bir dizine kaydetsin
  4. Klasörü arşivden çıkartın ve yeni bir ad verin
  5. Geri dönün; büyük mavi Yeni düğmesini tıklayın ve açılır menüden "Klasör yükleme" yi seçin.
  6. Bilgisayarıma geri döndüm; yeni adlandırılmış klasörü alın ve tekrar Drive'a sürükleyin.
  7. Sifonu çek

Not: Bu, ufacık bir sıkıştırılmış dosya için birlikte oluşturduğunuz çok sayıda küçük dosya ve alt klasörünüz olduğunda bir çözümdür. Sıkıştırılmış dosya boyutu arttıkça kullanımı azalır.


1
Bu çözümün asıl sorunu - tüm sürücü içeriğinizi yerel olarak saklamak için yeterli alana sahip olma ihtiyacının açık olması bir yana, iki kez (hem sıkıştırılmış hem de çıkartılmış) - tüm Google dokümanlarını uygun MS OpenOffice belge biçimine aktaracaksa ve sonra onları yeniden yüklediğinizde, onları Google biçimlerine geri dönüştürmeniz ve bunun neden olduğu tüm biçimlendirme sorunları ile ilgilenmeniz gerekir.
Guss

3

Zorunda olmadıkça üçüncü tarafların Drive'ma erişmesine izin vermekten kaçınmayı tercih ediyorum, Lucky 711 gibi kendi senaryomu yazdım. Gelecekteki Google sonuçları maceracıları için burada bırakıyorum. Klasörü ve tüm içeriğini kopyalayacaktır. Kullanım davamda, kopyalanan klasörü yeni bir ebeveyn olarak ekleyerek birden fazla ebeveyn içeren dosyaları işlemek için yazdım. Bunu istemiyorsanız, "Bu ebeveyn olmayan ebeveynleri sayın" bölümünü bırakın.

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

}

Başvuru için, yalnızca yeni klasörü başka bir üst öğe olarak eklemek yerine, birden fazla üst üste sahip yeni dosya kopyaları oluşturmak istiyorsanız, kısa kod şöyle görünür:

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

}

Bu betiği nasıl çalıştırıyorsunuz? Veya girdi parametrelerini nasıl alıyorsunuz?
roydukkey

Girdileri, kopyalamak istediğiniz klasörün kimliği, kopyayı oluşturmak istediğiniz klasörün kimliği ve kopyanın olmasını istediğiniz addır. Bir klasörün kimliğini almak için, dosyaya gidin ve URL'nin sonuna bakın. Muhtemelen 1jVlkj------------------------Gk3D7tüm çizgi karakterleri dışında bir şey gibi . Bu anlamsız dize, Google’ın atadığı benzersiz kimliktir. Üç girdiye sahip olduğunuzda, bu işlevi başka bir işlevden copyFolderAndContentsToFolder('superLongIdString','anotherLongIdString','NewFolderName')
Engineer Toast

Bu neredeyse mükemmel, ama benim durumumda farklı klasörlere bağlı dosyalar var. Bu yüzden dosyayı kopyalamak yerine, sadece bağlantıyı kopyalar.
roydukkey

Birden fazla yerde bulunan (yani, birden fazla ebeveyne sahip) dosyaları kastettiğinizde, bu gönderide ele alınmaktadır. Sadece countOfOtherParents++;satırı kopyalayabilirsiniz ve bu işlem gerçekleşir. Kullanım davam için, açıkça açıkça bu dosyaların yeni bir kopyasını oluşturmak yerine başka bir üst elde etmelerini istedim. Diğer klasörleri açan köprüler gibi davranan dosyaları kastediyorsanız, o zaman bunu yapabileceğinizi bilmiyordum.
Mühendis Tost,

IE, asgari değişiklik bu olurdu ama "temizleyici" kodu bu
Mühendisi Toast

3

Google E-Tablolar için " Klasör Kopyala " eklentisini kullanabilirsiniz :

  1. bir Google E-tablosu oluşturun
  2. tıklayın Add-ons > Get add-onsve 'Kopyala Klasörü' eklentisini ekleyin.
  3. kopyalamak istediğiniz klasörü seçin
  4. tamam

Video eğitimine bakın .

Veya bu krom web mağazası Google App Script bu sonucu elde etmek için kullanılabilir. Bu bir Google Elektronik Tablo oluşturulmasını gerektirmez.


7
Bu, "E-postanı görüntüle ve oku" eklentisinin izin vermesini gerektirir
Michael Cole

@MichaelCole ve diğer sorunlu izinler: elektronik tabloları yönet, isteğe bağlı web siteleri yükle ve hepsinden kötüsü: çevrimdışı erişim. İzin problemleri çözülene kadar kimsenin kurulumunu önermiyorum.
Guss

Ah .. cesur Yeni yazı Şimdi yaşadığımız Cambridge analytica dünyası
abbood

Elektronik sayfaları yönet, çalışırken elektronik tablo günlük dosyası eklemektir.
Ajay

@Ajay Bu benim kötüydü. Tekrar gönderdiğin için teşekkürler.
jonsca

1

Birden fazla makine kullanıyorum ve sürücü uygulamasını hepsine eklemek istemiyorum, bu yüzden aşağıdaki kopyayı siteye kopyalamak için yazdım. Çirkin ve basit ama işe yarıyor. Yalnızca bir klasörü ve dosyalarını kopyalar, alt klasörleri değil. İyileştirme için oda olduğundan eminim, bu yüzden bunu almaktan ve iyileştirmekten çekinmeyin, ama umarım en azından başlangıçta yardımcı olur.

Aşağıdaki bir yorumda, bu bir Google Apps Komut Dosyasıdır. Kullanmanın yolu, Google komut dosyası uygulamasını açmak, ardından kodu boş bir komut dosyasına kopyalayıp yapıştırmaktır. Bundan sonra Menü'deki yayınlama seçeneğini tıkladıktan sonra web uygulaması olarak dağıtmayı seçin. Son kod bağlantısını tıklayabilir veya URL'yi kopyalayıp tarayıcınıza yapıştırabilirsiniz. Ardından, kopyalamak istediğiniz klasörü ve kopyala düğmesini yazabileceğiniz bir kutu bulacaksınız. Bu, adlandırdığınız klasörün bir kopyasını ve içindeki tüm dosyaların bir kopyasını oluşturmalıdır.

Not: alt klasörleri, sadece dosyaları kopyalamaz.

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

Bir klasörü çoğaltmak için CTRL tuşunu basılı tutarak başka bir klasöre sürükleyip bırakın.


9
Bu çoğaltılmaz; sadece bir işaretçi yaratır. Bunu, bir klasörün Ctrl-drag-n-drop'unu birkaç farklı yere bırakarak test ettim, ardından klasörde bir dosya oluşturdum ve dosya her yerde görülebilir.
ale,

Doğru. Buna "klasör ekleme"
diyorlar

4
-1, çalışmıyor.
Pacerier

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.