/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.utils.executor.fileinfo;
import java.io.IOException;
import java.util.Collection;
/**
* Provides information about files and directories in a file system.
* @author Christian Weiss
*/
public interface FileInfoService {
/**
* Lists all file of a given directory.
* @param path absolute path to directory or regular expression
* @return file information
* @throws IOException on I/O errors
*/
Collection<FileInfo> listFiles(String path) throws IOException;
/**
* Lists all file of a given directory.
* @param pyth absolute path to directory or regular expression
* @param recursively <code>true</code> with sub-directories, otherwise <code>false</code>
* @return file information
* @throws IOException on I/O errors
*/
Collection<FileInfo> listFiles(String pyth, boolean recursively) throws IOException;
/**
* Lists all files and directories of a given directory.
*
* @param path absolute path to directory or regular expression
* @return file and directory information
* @throws IOException on I/O errors
*/
Collection<FileInfo> listContent(String path) throws IOException;
/**
* Lists all files and directories of a given directory.
* @param path absolute path to directory or regular expression
* @param recursively <code>true</code> with sub-directories, otherwise <code>false</code>
* @return file and directory information
* @throws IOException on I/O errors
*/
Collection<FileInfo> listContent(String path, boolean recursively) throws IOException;
/**
* Checks if given path points to a directory.
* @param path absolute path to check
* @return <code>true</code> if directory, otherwise <code>false</code>
* @throws IOException on I/O errors
*/
boolean isDirectory(String path) throws IOException;
/**
* Retrieves the size of a given file.
* @param path absolute path to file
* @return size of file
* @throws IOException on I/O errors
*/
Long size(String path) throws IOException;
}