/* * This file is a part of Alchemy OS project. * Copyright (C) 2011-2013, Sergey Basalaev <sbasalaev@gmail.com> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package alchemy.fs.jsr75; import alchemy.fs.NavigatorHelper; import alchemy.util.ArrayList; import java.io.IOException; import java.util.Enumeration; import javax.microedition.io.Connector; import javax.microedition.io.file.FileSystemRegistry; import javax.microedition.io.file.FileConnection; /** * FSNavigator helper for JSR-75. * @author Sergey Basalaev */ public class Helper implements NavigatorHelper { public Helper() { } public String[] listRoots() { Enumeration e = FileSystemRegistry.listRoots(); ArrayList rootv = new ArrayList(); while (e.hasMoreElements()) rootv.add(e.nextElement()); String[] roots = new String[rootv.size()]; for (int i=0; i<rootv.size(); i++) { String str = String.valueOf(rootv.get(i)); if (!str.endsWith("/")) roots[i] = str+'/'; else roots[i] = str; } return roots; } public void mkdir(String dir) throws IOException { FileConnection fc = (FileConnection)Connector.open("file://"+dir+'/', Connector.READ_WRITE); try { fc.mkdir(); } finally { fc.close(); } } public String[] list(String dir) throws IOException { FileConnection fc = (FileConnection)Connector.open("file://"+dir+'/', Connector.READ); try { Enumeration e = fc.list(); ArrayList v = new ArrayList(); while (e.hasMoreElements()) v.add(e.nextElement()); int size = v.size(); String[] files = new String[size]; for (int i=0; i<size; i++) { files[i] = (String)v.get(i); } return files; } finally { fc.close(); } } }