package org.qrone.r7.script.window; import java.io.IOException; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; import java.util.SortedSet; import org.mozilla.javascript.Scriptable; import org.qrone.r7.resolver.URIFileSystem; import org.qrone.r7.script.browser.Window; import org.qrone.util.Stream; public class WindowFileSystem implements WindowPrototype { private Window win; private URIFileSystem resolver; public WindowFileSystem( Window win ){ this.win = win; resolver = win.getPortingService().getFileSystemService(); } @Override public void init(Scriptable scr) { } public List<String> source_listFile(){ return new ArrayList<String>(resolver.list()); } public boolean source_existFile(String path){ return resolver.exist(path); } public byte[] source_readFile(String path){ if(resolver.exist(path)){ try { return Stream.read(resolver.getInputStream(new URI(path))); } catch (IOException e) { e.printStackTrace(); } catch (URISyntaxException e) { e.printStackTrace(); } } return null; } public void source_writeFile(String path, byte[] data){ try { OutputStream out = resolver.getOutputStream(new URI(path)); out.write(data); out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } catch (URISyntaxException e) { e.printStackTrace(); } } }