5

में FileReader # readEntries द्वारा पढ़ी जा सकने वाली निर्देशिका की अधिकतम फ़ाइलें मैं क्रोम एप्लिकेशन बना रहा हूं। मुझे निर्देशिका की फ़ाइलों को पढ़ना होगा और मैं DirectoryEntry API और DirectoryReader API का उपयोग कर रहा हूं।जावास्क्रिप्ट

मेरे समस्या यह है कि अधिक से अधिक फ़ाइलों DirectoryReader # readEntries का उपयोग करके पढ़ा 100, पहले 100 (वर्णमाला क्रम) है

var reader = currentDir.createReader(); 
var read = reader.readEntries.bind(reader, function(files) { 
    for (var i = 0; i < files.length; i++){ 
     if (files[i].name == nameSearches){ 
       callback(files[i]); 
      } 

     } 
    }) 
    callback(undefined) 
} 
read(); 

files.length का मूल्य 100 है और वहाँ निर्देशिका में अधिक फ़ाइलें हैं

मुझे यकीन नहीं है कि यह सीमा Google क्रोम, Google क्रोम एप्लिकेशन, जावास्क्रिप्ट के बारे में है ... और यदि यह सीमा

समाधान समाधान के साथ परिणाम कोड है :

var reader = currentDir.createReader(); 
var read = reader.readEntries.bind(reader, function(files) { 
    if (files.lenght == 0) { 
     callback(undefined); 
    } 
    for (var i = 0; i < files.length; i++){ 
     if (files[i].name == nameSearches){ 
       callback(files[i]); 
      } 

     } 
    }) 
    read(); 

} 
read(); 

उत्तर

13

आपके द्वारा लिंक किए गए दस्तावेज़ पढ़ें!

इस इंटरफेस के लिए एकमात्र तरीका, readEntries() एक निर्देशिका में सभी फ़ाइलों और फ़ोल्डरों लिस्टिंग के लिए है। एक नया DirectoryReader बनाने के लिए

  1. कॉल directoryEntry.createReader(): सभी प्रविष्टियों की सूची के लिए, आपको निम्न कार्य करने होंगे ।
  2. readEntries() पर कॉल करें।
  3. readEntries() पर कॉल करना जारी रखें जब तक कि सरणी वापस नहीं आती। आपको ऐसा करना है क्योंकि एपीआई एक ही कॉल में सभी प्रविष्टियों को वापस नहीं कर सकता है।
+0

बहुत धन्यवाद। मैं सिर्फ पोस्ट लिखने के बाद उस समाधान के बारे में सोच रहा था। और स्पष्ट रूप से काम करता है। और उदाहरण यह बताता है (https://developer.mozilla.org/en-US/docs/Web/API/DirectoryReader)। मुझे समाधानों के लिए खोज में सुधार करना होगा ... – fhuertas

+0

डब्ल्यूटीएफ readEntries() प्रविष्टियों का सिर्फ एक हिस्सा पढ़ता है। खराब डिज़ाइन, फ़ंक्शन को प्रति कॉल लौटाए गए अधिकतम प्रविष्टियों के पैरामीटर को स्पष्ट रूप से स्वीकार करना चाहिए (बिना डिफ़ॉल्ट मान के)। यदि कार्य असुरक्षित है तो आप "फ़ंक्शन को कॉल करना जारी रखें" कैसे करते हैं? –

संबंधित मुद्दे