/* * Zirco Browser for Android * * Copyright (C) 2010 J. Devauchelle and contributors. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * version 3 as published by the Free Software Foundation. * * 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. */ package org.shadowsocks.zirco.utils; import java.io.File; import java.io.FileFilter; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import android.os.Environment; /** * Utilities for I/O reading and writing. */ public class IOUtils { private static final String APPLICATION_FOLDER = "zirco"; private static final String DOWNLOAD_FOLDER = "downloads"; private static final String BOOKMARKS_EXPORT_FOLDER = "bookmarks-exports"; /** * Get the application folder on the SD Card. Create it if not present. * * @return The application folder. */ public static File getApplicationFolder() { File root = Environment.getExternalStorageDirectory(); if (root.canWrite()) { File folder = new File(root, APPLICATION_FOLDER); if (!folder.exists()) { folder.mkdir(); } return folder; } else { return null; } } /** * Get the application folder for bookmarks export. Create it if not * present. * * @return The application folder for bookmarks export. */ public static File getBookmarksExportFolder() { File root = getApplicationFolder(); if (root != null) { File folder = new File(root, BOOKMARKS_EXPORT_FOLDER); if (!folder.exists()) { folder.mkdir(); } return folder; } else { return null; } } /** * Get the application download folder on the SD Card. Create it if not * present. * * @return The application download folder. */ public static File getDownloadFolder() { File root = getApplicationFolder(); if (root != null) { File folder = new File(root, DOWNLOAD_FOLDER); if (!folder.exists()) { folder.mkdir(); } return folder; } else { return null; } } /** * Get the list of xml files in the bookmark export folder. * * @return The list of xml files in the bookmark export folder. */ public static List<String> getExportedBookmarksFileList() { List<String> result = new ArrayList<String>(); File folder = getBookmarksExportFolder(); if (folder != null) { FileFilter filter = new FileFilter() { @Override public boolean accept(File pathname) { if ((pathname.isFile()) && (pathname.getPath().endsWith(".xml"))) { return true; } return false; } }; File[] files = folder.listFiles(filter); for (File file : files) { result.add(file.getName()); } } Collections.sort(result, new Comparator<String>() { @Override public int compare(String arg0, String arg1) { return arg1.compareTo(arg0); } }); return result; } }