icbm/src/main/java/dan200/computercraft/api/filesystem/IMount.java
2022-11-10 00:00:10 +01:00

67 lines
2.7 KiB
Java

/**
* This file is part of the public ComputerCraft API - http://www.computercraft.info
* Copyright Daniel Ratcliffe, 2011-2015. This API may be redistributed unmodified and in
* full only. For help using the API, and posting your mods, visit the forums at
* computercraft.info.
*/
package dan200.computercraft.api.filesystem;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
* Represents a read only part of a virtual filesystem that can be mounted onto a
* computercraft using IComputerAccess.mount(). Ready made implementations of this
* interface can be created using ComputerCraftAPI.createSaveDirMount() or
* ComputerCraftAPI.createResourceMount(), or you're free to implement it yourselves!
* @see dan200.computercraft.api.ComputerCraftAPI#createSaveDirMount(World, String)
* @see dan200.computercraft.api.ComputerCraftAPI#createResourceMount(Class, String,
* String)
* @see dan200.computercraft.api.peripheral.IComputerAccess#mount(String, IMount)
* @see IWritableMount
*/
public interface IMount {
/**
* Returns whether a file with a given path exists or not.
* @param path A file path in normalised format, relative to the mount location. ie:
* "programs/myprogram"
* @return true if the file exists, false otherwise
*/
public boolean exists(String path) throws IOException;
/**
* Returns whether a file with a given path is a directory or not.
* @param path A file path in normalised format, relative to the mount location. ie:
* "programs/myprograms"
* @return true if the file exists and is a directory, false otherwise
*/
public boolean isDirectory(String path) throws IOException;
/**
* Returns the file names of all the files in a directory.
* @param path A file path in normalised format, relative to the mount location. ie:
* "programs/myprograms"
* @param contents A list of strings. Add all the file names to this list
*/
public void list(String path, List<String> contents) throws IOException;
/**
* Returns the size of a file with a given path, in bytes
* @param path A file path in normalised format, relative to the mount location. ie:
* "programs/myprogram"
* @return the size of the file, in bytes
*/
public long getSize(String path) throws IOException;
/**
* Opens a file with a given path, and returns an inputstream representing it's
* contents.
* @param path A file path in normalised format, relative to the mount location. ie:
* "programs/myprogram"
* @return a stream representing the contents of the file
*/
public InputStream openForRead(String path) throws IOException;
}