जैसा कि पहले उल्लेख किया गया है, FileSystem और फ़ाइल APIs, FileWriter API के साथ , ब्राउज़र टैब / विंडो के संदर्भ से क्लाइंट मशीन में फ़ाइलों को पढ़ने और लिखने के लिए उपयोग किया जा सकता है।
FileSystem और FileWriter API से संबंधित कई बातें हैं जिनके बारे में आपको जानकारी होनी चाहिए, जिनमें से कुछ का उल्लेख किया गया था, लेकिन वे दोहराने लायक हैं:
- वर्तमान में एपीआई के कार्यान्वयन केवल क्रोमियम-आधारित ब्राउज़रों (क्रोम और ओपेरा) में मौजूद हैं
- 24 अप्रैल 2014 को दोनों एपीआई को डब्ल्यू 3 सी मानकों के ट्रैक से हटा दिया गया था और अब तक का मालिकाना हक है
- भविष्य में ब्राउज़रों को लागू करने से (अब मालिकाना) एपीआई को हटाने की संभावना है
- API के साथ बनाई गई फ़ाइलों को संग्रहीत करने के लिए एक सैंडबॉक्स (डिस्क पर एक स्थान जिसके बाहर फाइलें कोई प्रभाव नहीं पैदा कर सकती हैं) का उपयोग किया जाता है
- एक वर्चुअल फाइल सिस्टम (एक निर्देशिका संरचना जो जरूरी नहीं कि डिस्क पर उसी रूप में मौजूद हो जो वह ब्राउज़र के भीतर से एक्सेस करते समय होती है) का उपयोग एपीआई के साथ बनाई गई फाइलों का प्रतिनिधित्व करता है।
इन चीजों को करने के लिए सीधे और अप्रत्यक्ष रूप से एपीआई का उपयोग कैसे किया जाता है, इसके सरल उदाहरण हैं:
बेक्डगूड्स *
फ़ाइल लिखें:
bakedGoods.set({
data: [{key: "testFile", value: "Hello world!", dataFormat: "text/plain"}],
storageTypes: ["fileSystem"],
options: {fileSystem:{storageType: Window.PERSISTENT}},
complete: function(byStorageTypeStoredItemRangeDataObj, byStorageTypeErrorObj){}
});
फ़ाइल पढ़ें:
bakedGoods.get({
data: ["testFile"],
storageTypes: ["fileSystem"],
options: {fileSystem:{storageType: Window.PERSISTENT}},
complete: function(resultDataObj, byStorageTypeErrorObj){}
});
कच्चे फ़ाइल, FileWriter और FileSystem API का उपयोग करना
फ़ाइल लिखें:
function onQuotaRequestSuccess(grantedQuota)
{
function saveFile(directoryEntry)
{
function createFileWriter(fileEntry)
{
function write(fileWriter)
{
var dataBlob = new Blob(["Hello world!"], {type: "text/plain"});
fileWriter.write(dataBlob);
}
fileEntry.createWriter(write);
}
directoryEntry.getFile(
"testFile",
{create: true, exclusive: true},
createFileWriter
);
}
requestFileSystem(Window.PERSISTENT, grantedQuota, saveFile);
}
var desiredQuota = 1024 * 1024 * 1024;
var quotaManagementObj = navigator.webkitPersistentStorage;
quotaManagementObj.requestQuota(desiredQuota, onQuotaRequestSuccess);
फ़ाइल पढ़ें:
function onQuotaRequestSuccess(grantedQuota)
{
function getfile(directoryEntry)
{
function readFile(fileEntry)
{
function read(file)
{
var fileReader = new FileReader();
fileReader.onload = function(){var fileData = fileReader.result};
fileReader.readAsText(file);
}
fileEntry.file(read);
}
directoryEntry.getFile(
"testFile",
{create: false},
readFile
);
}
requestFileSystem(Window.PERSISTENT, grantedQuota, getFile);
}
var desiredQuota = 1024 * 1024 * 1024;
var quotaManagementObj = navigator.webkitPersistentStorage;
quotaManagementObj.requestQuota(desiredQuota, onQuotaRequestSuccess);
हालांकि फ़ाइलसिस्टम और फ़ाइलविटर एपीआई अब मानक ट्रैक पर नहीं हैं, उनका उपयोग कुछ मामलों में उचित हो सकता है, मेरी राय में, क्योंकि:
- संयुक्त राष्ट्र के लागू करने वाले ब्राउज़र विक्रेताओं से नवीनीकृत ब्याज उन्हें इस पर वापस ला सकता है
- कार्यान्वयन (क्रोमियम-आधारित) ब्राउज़रों का बाजार प्रवेश अधिक है
- Google (क्रोमियम का मुख्य कंट्रिब्यूटर) ने एपीआई को जीवन की तारीख और अंत नहीं दिया है
क्या "कुछ मामले" आपके खुद के होते हैं, हालांकि, आपके लिए यह तय करना है।
* BakedGoods को इस लड़के के अलावा और किसी ने यहाँ नहीं रखा है :)