2012-12-24 23 views
7

वाली फ़ाइलों को सूचीबद्ध करें Google डोमेन में फ़ाइलें जिन्हें मैं प्रशासित करता हूं, खराब स्थिति में प्राप्त हुआ है; रूट निर्देशिका में रहने वाली हजारों फाइलें हैं। मैं इन फ़ाइलों की पहचान करना चाहता हूं और उन्हें "माई ड्राइव" के नीचे एक फ़ोल्डर में ले जाना चाहता हूं।Google ड्राइव एपीआई: कोई अभिभावक

जब मैं इन अनाथ फ़ाइलों में से किसी एक के लिए माता-पिता को सूचीबद्ध करने के लिए एपीआई का उपयोग करता हूं, तो परिणाम एक खाली सरणी है। यह निर्धारित करने के लिए कि कोई फ़ाइल अनाथ है या नहीं, मैं अपने डोमेन की सभी फाइलों पर पुन: प्रयास कर सकता हूं, और प्रत्येक के लिए माता-पिता की सूची का अनुरोध कर सकता हूं। अगर सूची खाली है, तो मुझे पता है कि फाइल अनाथ है।

लेकिन यह बहुत धीमा है।

क्या ड्राइव एपीआई का उपयोग करने के लिए वैसे भी है, जिनके पास माता-पिता नहीं हैं?

q पैरामीटर के लिए "माता-पिता" फ़ील्ड इसके लिए उपयोगी प्रतीत नहीं होता है, क्योंकि यह केवल यह निर्दिष्ट करना संभव है कि अभिभावकों की सूची में कुछ आईडी शामिल है।

अद्यतन:

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

+0

यह एक बग की तरह लगता है, हमें फ़ाइलों को किसी भी माता-पिता के पास नहीं होने देना चाहिए। –

+2

ड्राइव यूआई स्पष्ट रूप से आपको इस स्थिति में फ़ाइलों को स्थानांतरित करने देता है, लेकिन इसके खिलाफ सलाह देता है। ऐसी फाइलों के लिए पूछताछ करने में सक्षम होना बहुत अच्छा होगा। – snae

+0

क्या आपको कभी समाधान मिला? – casolorz

उत्तर

3

जावा में:

List<File> result = new ArrayList<File>(); 
Files.List request = drive.files().list(); 
request.setQ("'root'" + " in parents"); 

FileList files = null; 
files = request.execute(); 

for (com.google.api.services.drive.model.File element : files.getItems()) { 
    System.out.println(element.getTitle()); 
} 

'जड़' मूल फ़ोल्डर, है अगर फ़ाइल या फ़ोल्डर सरल जड़

+0

यह "माई ड्राइव" में फाइलें और फ़ोल्डर्स पाता है, जो वास्तव में रूट नहीं है, हालांकि, भ्रमित रूप से, "माई ड्राइव" फ़ोल्डर में संपत्ति है रूट = सत्य। मैं दस्तावेज़ पदानुक्रम की वास्तविक जड़ में वस्तुओं को तुरंत ढूंढने का प्रयास ढूंढ रहा हूं, यानी "माई ड्राइव" के भाई बहन। मैंने इसे प्रतिबिंबित करने के लिए अपना प्रश्न अपडेट कर लिया है। – FishesCycle

+0

@ जैस्पर क्या आप मुझे लाइब्रेरी का लिंक दे सकते हैं क्योंकि मुझे कोई निष्पादन नहीं मिला है() फ़ंक्शन – Prakhar

+0

आप 'com.google.api.services.drive.Drive' का उपयोग करके अनुरोध प्राप्त कर सकते हैं, जिसे उपयोग करके बनाया जा सकता है 'com.google.api.services.drive.Drive.builder.builder (HttpTransport, JsonFactory, HttpRequestInitializer) '। – BrunoJCM

1

ब्रूट में है, लेकिन और यह काम करता ..

do { 
     try { 
      FileList files = request.execute(); 

      for (File f : files.getItems()) { 
       if (f.getParents().size() == 0) { 
         System.out.println("Orphan found:\t" + f.getTitle()); 

       orphans.add(f); 
       } 
      } 

      request.setPageToken(files.getNextPageToken()); 
     } catch (IOException e) { 
      System.out.println("An error occurred: " + e); 
      request.setPageToken(null); 
     } 
    } while (request.getPageToken() != null 
      && request.getPageToken().length() > 0); 
0

अपनी क्वेरी में इसका उपयोग करने का प्रयास करें:

'root' in parents 
+0

https://gsuite-developers.googleblog.com/2012/08/5-things-you-didnt-now-you-could-do.html –

0

documentation निम्नलिखित क्वेरी की सिफारिश करता है: is:unorganized owner:me