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

ars.file.disk.DiskOperator Maven / Gradle / Ivy

The newest version!
package ars.file.disk;

import java.io.File;
import java.io.InputStream;

import ars.util.Files;
import ars.util.Nfile;
import ars.util.Streams;
import ars.file.Describe;
import ars.file.AbstractOperator;
import ars.file.query.Query;

/**
 * 基于本地磁盘的文件操作实现
 *
 * @author wuyongqiang
 */
public class DiskOperator extends AbstractOperator {

    public DiskOperator() {

    }

    public DiskOperator(String workingDirectory) {
        super(workingDirectory);
    }

    @Override
    public boolean exists(String path) throws Exception {
        return new File(this.workingDirectory, path).exists();
    }

    @Override
    public boolean mkdirs(String path) throws Exception {
        return new File(this.workingDirectory, path).mkdirs();
    }

    @Override
    public boolean rename(String path, String name) throws Exception {
        File target = new File(new File(this.workingDirectory, path).getParent(), name);
        return new File(this.workingDirectory, path).renameTo(target);
    }

    @Override
    public void delete(String path) throws Exception {
        Files.delete(new File(this.workingDirectory, path));
    }

    @Override
    public void copy(String source, String target) throws Exception {
        Files.copy(new File(this.workingDirectory, source), new File(this.workingDirectory, target));
    }

    @Override
    public void move(String source, String target) throws Exception {
        Files.move(new File(this.workingDirectory, source), new File(this.workingDirectory, target));
    }

    @Override
    public Query query() {
        return new DiskQuery(this.workingDirectory);
    }

    @Override
    public Describe describe(String path) throws Exception {
        File file = new File(this.workingDirectory, path);
        if (!file.exists()) {
            return null;
        }
        Describe describe = new Describe(file);
        describe.setPath(describe.getPath().substring(this.workingDirectory.length()));
        return describe;
    }

    @Override
    public Nfile read(String path) throws Exception {
        File file = new File(this.workingDirectory, path);
        return file.exists() && file.isFile() ? new Nfile(file) : null;
    }

    @Override
    public void write(File file, String path) throws Exception {
        Streams.write(file, new File(this.workingDirectory, path));
    }

    @Override
    public void write(Nfile file, String path) throws Exception {
        Streams.write(file, new File(this.workingDirectory, path));
    }

    @Override
    public void write(InputStream stream, String path) throws Exception {
        Streams.write(stream, new File(this.workingDirectory, path));
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy