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

br.com.jhonsapp.file.manager.implementation.LocalHDFileManager Maven / Gradle / Ivy

Go to download

File Manager is an open source project created by Jhonys Camacho and Jhonathan Camacho to facilitate the file management in local and remote repositories.

The newest version!
package br.com.jhonsapp.file.manager.implementation;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import br.com.jhonsapp.file.manager.contract.AbstractFileManager;
import br.com.jhonsapp.file.manager.file.FileEntity;
import br.com.jhonsapp.util.file.FileVerifier;
import br.com.jhonsapp.util.verifier.StringVerifier;

/**
 * This class is responsible for manipulating files in a local directory.
 * 
 * @author Jhonathan Camacho
 */
public class LocalHDFileManager extends AbstractFileManager {

	/**
	 * Generated serial version id created at 09 July 2017.
	 */
	private static final long serialVersionUID = -4504893324193495328L;

	public LocalHDFileManager(String repositoryPath) {
		super(repositoryPath);
	}

	@Override
	public boolean insert(FileEntity entity) {

		try {
			this.remove(entity.getName());

			String path = getRepositoryPath();
			FileOutputStream fileOutput = new FileOutputStream(path + entity.getAbsoluteName());
			fileOutput.write(entity.getByte());
			fileOutput.close();

			return true;
		} catch (IOException e) {
			return false;
		}
	}

	@Override
	public boolean remove(String fileName) {

		if (this.hasFile(fileName)) {
			File file = this.findFile(fileName);
			file.delete();
			return true;
		} else {
			return false;
		}
	}

	@Override
	public FileEntity getFile(String fileName) {

		File file = this.findFile(fileName);

		if (FileVerifier.isValid(file)) {

			String[] s = file.getName().split("[.]");

			return FileEntity.createFile(s[0], s[1], file);
		} else {			
			return null;
		}
	}

	@Override
	public boolean hasFile(String fileName) {
		return this.findFile(fileName) != null;
	}

	private File findFile(String fileName) {

		if (StringVerifier.isBlanck(fileName))
			throw new IllegalArgumentException("The fileName cannot be null.");

		File arquivo = null;

		File[] lista = new File(this.getRepositoryPath()).listFiles();

		for (int i = 0; i < lista.length; i++) {

			if (lista[i].getName().contains(fileName)) {

				arquivo = lista[i];
				break;
			}
		}

		return arquivo;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy