aboutsummaryrefslogtreecommitdiff
path: root/subsonic-main/src/main/java/net/sourceforge/subsonic/util/FileUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'subsonic-main/src/main/java/net/sourceforge/subsonic/util/FileUtil.java')
-rw-r--r--subsonic-main/src/main/java/net/sourceforge/subsonic/util/FileUtil.java186
1 files changed, 0 insertions, 186 deletions
diff --git a/subsonic-main/src/main/java/net/sourceforge/subsonic/util/FileUtil.java b/subsonic-main/src/main/java/net/sourceforge/subsonic/util/FileUtil.java
deleted file mode 100644
index e91758ef..00000000
--- a/subsonic-main/src/main/java/net/sourceforge/subsonic/util/FileUtil.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- This file is part of Subsonic.
-
- Subsonic 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.
-
- Subsonic 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 Subsonic. If not, see <http://www.gnu.org/licenses/>.
-
- Copyright 2009 (C) Sindre Mehus
- */
-package net.sourceforge.subsonic.util;
-
-import java.io.Closeable;
-import java.io.File;
-import java.io.FilenameFilter;
-import java.io.IOException;
-import java.util.Arrays;
-
-import net.sourceforge.subsonic.Logger;
-
-/**
- * Miscellaneous file utility methods.
- *
- * @author Sindre Mehus
- */
-public final class FileUtil {
-
- private static final Logger LOG = Logger.getLogger(FileUtil.class);
-
- /**
- * Disallow external instantiation.
- */
- private FileUtil() {
- }
-
- public static boolean isFile(final File file) {
- return timed(new FileTask<Boolean>("isFile", file) {
- @Override
- public Boolean execute() {
- return file.isFile();
- }
- });
- }
-
- public static boolean isDirectory(final File file) {
- return timed(new FileTask<Boolean>("isDirectory", file) {
- @Override
- public Boolean execute() {
- return file.isDirectory();
- }
- });
- }
-
- public static boolean exists(final File file) {
- return timed(new FileTask<Boolean>("exists", file) {
- @Override
- public Boolean execute() {
- return file.exists();
- }
- });
- }
-
- public static long lastModified(final File file) {
- return timed(new FileTask<Long>("lastModified", file) {
- @Override
- public Long execute() {
- return file.lastModified();
- }
- });
- }
-
- public static long length(final File file) {
- return timed(new FileTask<Long>("length", file) {
- @Override
- public Long execute() {
- return file.length();
- }
- });
- }
-
- /**
- * Similar to {@link File#listFiles()}, but never returns null.
- * Instead a warning is logged, and an empty array is returned.
- */
- public static File[] listFiles(final File dir) {
- File[] files = timed(new FileTask<File[]>("listFiles", dir) {
- @Override
- public File[] execute() {
- return dir.listFiles();
- }
- });
-
- if (files == null) {
- LOG.warn("Failed to list children for " + dir.getPath());
- return new File[0];
- }
- return files;
- }
-
- /**
- * Similar to {@link File#listFiles(FilenameFilter)}, but never returns null.
- * Instead a warning is logged, and an empty array is returned.
- */
- public static File[] listFiles(final File dir, final FilenameFilter filter, boolean sort) {
- File[] files = timed(new FileTask<File[]>("listFiles2", dir) {
- @Override
- public File[] execute() {
- return dir.listFiles(filter);
- }
- });
- if (files == null) {
- LOG.warn("Failed to list children for " + dir.getPath());
- return new File[0];
- }
- if (sort) {
- Arrays.sort(files);
- }
- return files;
- }
-
- /**
- * Returns a short path for the given file. The path consists of the name
- * of the parent directory and the given file.
- */
- public static String getShortPath(File file) {
- if (file == null) {
- return null;
- }
- File parent = file.getParentFile();
- if (parent == null) {
- return file.getName();
- }
- return parent.getName() + File.separator + file.getName();
- }
-
- /**
- * Closes the "closable", ignoring any excepetions.
- *
- * @param closeable The Closable to close, may be {@code null}.
- */
- public static void closeQuietly(Closeable closeable) {
- if (closeable != null) {
- try {
- closeable.close();
- } catch (IOException e) {
- // Ignored
- }
- }
- }
-
- private static <T> T timed(FileTask<T> task) {
-// long t0 = System.nanoTime();
-// try {
- return task.execute();
-// } finally {
-// long t1 = System.nanoTime();
-// LOG.debug((t1 - t0) / 1000L + " microsec, " + task);
-// }
- }
-
- private abstract static class FileTask<T> {
-
- private final String name;
- private final File file;
-
- public FileTask(String name, File file) {
- this.name = name;
- this.file = file;
- }
-
- public abstract T execute();
-
- @Override
- public String toString() {
- return name + ", " + file;
- }
- }
-} \ No newline at end of file