assets/        images/        scripts/        css/   manifest.json  main.js  index.html  icon16.png  icon48.png  icon128.png

{
  "manifest_version": 2,
  "name": "My App",
  "version": "versionString",
  "default_locale": "en",
  "description": "A plain text description",
  "icons": {...},
  "app": {
    "background": {
            "scripts": ["background.js"]
    },
  },
  "permissions": ["<all_urls>"]
}

chrome.app.runtime.onLaunched.addListener(function() {

  chrome.app.window.create('index.html', {
    id: "helloWorldID",
    bounds: {
      width: 500,
      height: 300,
      left: 0,
      top:0
    }
  });
});

chrome.syncFileSystem.requestFileSystem(onInitFs);

L’objet fs est un DOMFileSystem peut être opéré comme n’importe quel fichier distant ou local. Le filesystem ne supporte pas les opérations sur les répertoires : on peut obtenir la liste des fichiers depuis la racine d’un répertoire, mais pas en créer de nouveaux. Dans notre cas, la fonction de callback getEntryCallback()  récupère notre fichier une fois accessible. 
function onInitFs(fs) {
    fs.root.getFile('test.txt', {create:true}, getEntryCallback, errorHandler);
}
On récupère l’objet représentant le fichier, puis utilise un FileReader pour lire son contenu. La fonction reader.onloadend est appelée une fois le contenu disponible. Il est disponible via la variable this.result.
Function getEntryCallback(fileEntry) {
    fileEntry.file(function(file) {
       var reader = new FileReader();
       reader.onloadend = function(e) {
         doSomething( this.result);
       };
       reader.readAsText(file);
}