Я пытаюсь читать и записывать файлы, используя плагин cordova-plugin-file. Запись файлов, кажется, работает нормально, но когда я захожу, чтобы прочитать файл, он не работает, и запускается настроенный мной обратный вызов сбоя.
function getData(fetch) {
alert('Getting data')
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fs) {
fs.root.getFile(department + ".txt", { create: false, exclusive: false }, function (fileEntry) {
alert('reading this file: ' + JSON.stringify(fileEntry))
readFile(fileEntry);
}, addDepartment);
});
if (typeof sessionStorage.currentGroup != 'undefined') {groupData = dataActive[sessionStorage.currentGroup];}
if (typeof sessionStorage.currentSubgroup != 'undefined') {subgroupData = groupData[sessionStorage.currentSubgroup];}
if (typeof sessionStorage.currentItem != 'undefined') {itemData = subgroupData[sessionStorage.currentItem];}
if (typeof itemData != 'undefined') {
UCC = itemData.UCC;
GTIN = itemData.GTIN;
ProductionDate = itemData.ProductionDate;
Weight = itemData.Weight;
SerialNum = itemData.SerialNum;
}
fetch();
}
function readFile(fileEntry) {
alert('Reading file')
fileEntry.file(function (file) {
var reader = new FileReader();
reader.onloadend = function() {
console.log("Successful file read: " + this.result);
window.dataActive = JSON.parse(this.result);
alert('dataActive was read as: ' + dataActive)
displayFileData(fileEntry.fullPath + ": " + this.result);
};
reader.readAsText(file);
}, alert('failed to read file!'));
}
Я получаю сообщение «не удалось прочитать файл»и остальная часть кода не может быть запущена, потому что нет данных (которые мне нужны из файла). Я немного новичок в JavaScript и PhoneGap / Cordova,
Обновление
Я попытался отладить свой код, потому что он был полон проблем, но теперь я дошел до минимумаи я дважды проверил все, и я до сих пор не знаю, в чем проблема. Я так внимательно следил за примерами документации (https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/), и это просто не сработало. Я продолжаю получать значение NULL при чтении файла. Мой код ниже:
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fs) {
fs.root.getFile("newPersistentFile.txt", { create: true, exclusive: false }, function (fileEntry) {
alert(JSON.stringify(fileEntry))
// fileEntry.name == 'someFile.txt'
// fileEntry.fullPath == '/someFile.txt'
writeFile(fileEntry, 'sample text');
readFile(fileEntry);
}, function() {alert('onErrorCreateFile')});
}, function() {alert('onErrorLoadFs')});
function readFile(fileEntry) {
fileEntry.file(function (file) {
var reader = new FileReader();
reader.onloadend = function() {
console.log("Successful file read: " + this.result);
//displayFileData(fileEntry.fullPath + ": " + this.result);
};
reader.readAsText(file);
}, function() {alert('onErrorReadFile')});
}
function writeFile(fileEntry, dataObj) {
// Create a FileWriter object for our FileEntry (log.txt).
fileEntry.createWriter(function (fileWriter) {
fileWriter.onwrite = function() {
alert("Successful file write...");
readFile(fileEntry);
alert('Contents are: ' + this.result);
};
fileWriter.onerror = function (e) {
alert("Failed file write: " + e.toString());
};
fileWriter.write(dataObj);
});
}