Skip to content

Instantly share code, notes, and snippets.

@panda4man
Forked from maleeb/fileservice.js
Last active August 29, 2015 14:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save panda4man/df9d63283aa3e3262b4e to your computer and use it in GitHub Desktop.
Save panda4man/df9d63283aa3e3262b4e to your computer and use it in GitHub Desktop.
//Filesystem (checkDir, createDir, checkFile, creatFile, removeFile, writeFile, readeFile)
.factory('FileService', function($q) {
return {
checkDir: function (dir) {
var deferred = $q.defer();
getFilesystem().then(
function(filesystem) {
filesystem.root.getDirectory(dir, {create: false},
function() {
//Dir exist
deferred.resolve();
},
function() {
//Dir dont exist
deferred.reject();
}
);
}
);
return deferred.promise;
},
createDir: function (dir) {
getFilesystem().then(
function(filesystem) {
filesystem.root.getDirectory(dir, {create: true});
}
);
},
checkFile: function (dir, file) {
var deferred = $q.defer();
getFilesystem().then(
function(filesystem) {
filesystem.root.getFile('/'+ dir +'/'+ file, {create: false},
function() {
//File exist
deferred.resolve();
},
function() {
//File dont exist
deferred.reject();
}
);
}
);
return deferred.promise;
},
createFile: function (dir, file) {
getFilesystem().then(
function(filesystem) {
filesystem.root.getFile('/'+ dir +'/'+ file, {create: true});
}
);
},
removeFile: function (dir, file) {
var deferred = $q.defer();
getFilesystem().then(
function(filesystem) {
filesystem.root.getFile('/'+ dir +'/'+ file, {create: false}, function(fileEntry){
fileEntry.remove(function() {
deferred.resolve();
});
});
}
);
return deferred.promise;
},
writeFile: function (dir, file) {
var deferred = $q.defer();
getFilesystem().then(
function(filesystem) {
filesystem.root.getFile('/'+ dir +'/'+ file, {create: false},
function(fileEntry) {
fileEntry.createWriter(function(fileWriter) {
deferred.resolve(fileWriter);
});
}
);
}
);
return deferred.promise;
},
readeFile: function (dir, file) {
var deferred = $q.defer();
getFilesystem().then(
function(filesystem) {
filesystem.root.getFile('/'+ dir +'/'+ file, {create: false},
function(fileEntry) {
fileEntry.file(function(file) {
var reader = new FileReader();
reader.onloadend = function() {
deferred.resolve(this.result);
};
reader.readAsText(file);
});
}
);
}
);
return deferred.promise;
}
};
function getFilesystem() {
var deferred = $q.defer();
window.requestFileSystem(window.PERSISTENT, 1024*1024, function(filesystem) {
deferred.resolve(filesystem);
});
return deferred.promise;
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment