All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.couchbase.lite.support.FileDirUtils Maven / Gradle / Ivy

/**
 * Original iOS version by  Jens Alfke
 * Ported to Android by Marty Schoch
 * 

* Copyright (c) 2012 Couchbase, Inc. All rights reserved. *

* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of the License at *

* http://www.apache.org/licenses/LICENSE-2.0 *

* Unless required by applicable law or agreed to in writing, software distributed under the * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, * either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.couchbase.lite.support; import com.couchbase.lite.Database; import com.couchbase.lite.util.Log; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.nio.channels.FileChannel; public class FileDirUtils { public static boolean removeItemIfExists(String path) { File f = new File(path); return f.delete() || !f.exists(); } public static boolean deleteRecursive(File fileOrDirectory) { if (fileOrDirectory.isDirectory()) { for (File child : fileOrDirectory.listFiles()) { deleteRecursive(child); } } return fileOrDirectory.delete() || !fileOrDirectory.exists(); } public static boolean cleanDirectory(File dir) { if (!dir.isDirectory()) return false; for (File file : dir.listFiles()) { if (!deleteRecursive(file)) return false; } return true; } public static String getDatabaseNameFromPath(String path) { String fileName = new File(path).getName(); int extensionPos = fileName.lastIndexOf('.'); if (extensionPos < 0) { String message = "Unable to determine database name from path: " + path; Log.e(Database.TAG, message); throw new IllegalArgumentException(message); } return fileName.substring(0, extensionPos); } public static String getPathWithoutExt(String path) { int pos = path.lastIndexOf('.'); return pos > 0 ? path.substring(0, pos) : path; } public static void copyFile(File sourceFile, File destFile) throws IOException { if (!destFile.exists()) { destFile.createNewFile(); } FileChannel source = null; FileChannel destination = null; try { source = new FileInputStream(sourceFile).getChannel(); destination = new FileOutputStream(destFile).getChannel(); destination.transferFrom(source, 0, source.size()); } finally { if (source != null) source.close(); if (destination != null) destination.close(); } } public static void copyFolder(File src, File dest) throws IOException { if (src.isDirectory()) { //if directory not exists, create it if (!dest.exists()) { dest.mkdir(); } //list all the directory contents String files[] = src.list(); for (String file : files) { //construct the src and dest file structure File srcFile = new File(src, file); File destFile = new File(dest, file); //recursive copy copyFolder(srcFile, destFile); } } else { copyFile(src, dest); } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy