FileSystem

Inheritance: java.lang.Object

All Implemented Interfaces: java.io.Closeable

public abstract class FileSystem implements Closeable

File system encapsulation. Aspose.3D will use this to read/write dependencies. Example: The following code shows how to import file, and provide dependent files in a given directory

var inputFile = "input.fbx";
     var format = FileFormat.detect(inputFile);
     //create a load options instance and specify a zip file system
     var opt = format.createLoadOptions();
     opt.setFileSystem(new LocalFileSystem("textures/"));
     //load the file
     var scene = Scene.fromFile(inputFile, opt);

Constructors

ConstructorDescription
FileSystem()

Methods

MethodDescription
close()Dispose the File system and release its resources.
createDummyFileSystem()Create a dummy file system, read/write operations are dummy operations.
createLocalFileSystem(String directory)Initialize a new FileSystem that only access local directory.
createMemoryFileSystem()Create a memory-based file system which will maps the read/write operations to memory.
createMemoryFileSystem(HashMap<String,MemoryStream> files)Create a memory-based file system which will maps the read/write operations to memory.
createZipFileSystem(Stream stream)Create a file system to provide to the read-only access to speicified zip file or zip stream.
createZipFileSystem(Stream stream, String baseDir)Create a file system to provide to the read-only access to speicified zip file or zip stream.
createZipFileSystem(String fileName)File system to provide to the read-only access to speicified zip file or zip stream.
equals(Object arg0)
getClass()
hashCode()
notify()
notifyAll()
readFile(String fileName, IOConfig options)Create a stream for reading dependencies.
toString()
wait()
wait(long arg0)
wait(long arg0, int arg1)
writeFile(String fileName, IOConfig options)Create a stream for writing dependencies.

FileSystem()

public FileSystem()

close()

public void close()

Dispose the File system and release its resources.

createDummyFileSystem()

public static FileSystem createDummyFileSystem()

Create a dummy file system, read/write operations are dummy operations.

Returns: FileSystem - A dummy file system Example: The following code shows how to export file to memory, and ignore all dependent file generation.

//create a scene with material
     Scene scene = new Scene();
     scene.getRootNode().createChildNode(new Box()).setMaterial(new LambertMaterial());
     //create a save option and specify the file system, so the dependent file will be written to memory
     var opt = FileFormat.WAVEFRONTOBJ.createSaveOptions();
     var dfs = FileSystem.CreateDummyFileSystem();
     opt.setFileSystem(dfs);
     //obj's material file name is associated with the obj's file name, so we need a explicit name.
     opt.setFileName("test.obj");
     try (var ms = new MemoryStream())
     {
         scene.save(ms, opt);
     }

createLocalFileSystem(String directory)

public static FileSystem createLocalFileSystem(String directory)

Initialize a new FileSystem that only access local directory. All file read/write on this FileSystem instance will be mapped to specified directory.

Parameters:

ParameterTypeDescription
directoryjava.lang.StringThe directory in your physical file system as the virtual root directory.

Returns: FileSystem - A new instance of file system to provide local file access

createMemoryFileSystem()

public static FileSystem createMemoryFileSystem()

Create a memory-based file system which will maps the read/write operations to memory.

Returns: FileSystem - A memory-based file system Example: The following code shows how to export file to memory, includes the dependent file by using MemoryFileSystem.

//create a scene with material
     Scene scene = new Scene();
     scene.getRootNode().createChildNode(new Box()).setMaterial(new LambertMaterial());
     //create a save option and specify the file system, so the dependent file will be written to memory
     var opt = FileFormat.WAVEFRONTOBJ.createSaveOptions();
     var mfs = new HashMap<String, MemoryStream>();
     opt.setFileSystem(FileSystem.createMemoryFileSystem(mfs));
     //obj's material file name is associated with the obj's file name, so we need a explicit name.
     opt.setFileName("test.obj");
     try (var ms = new MemoryStream())
     {
         scene.save(ms, opt);
     }
     //the test.obj was written to variable ms, and we can also get the test.mtl file content by
     var materialFile = mfs.get("test.mtl");

createMemoryFileSystem(HashMap<String,MemoryStream> files)

public static FileSystem createMemoryFileSystem(HashMap<String,MemoryStream> files)

Create a memory-based file system which will maps the read/write operations to memory.

Parameters:

ParameterTypeDescription
filesjava.util.HashMap<java.lang.String,com.aspose.threed.MemoryStream>This allows you to read/write the virtual files.

Returns: FileSystem - A memory-based file system Example: The following code shows how to export file to memory, includes the dependent file by using MemoryFileSystem.

//create a scene with material
     Scene scene = new Scene();
     scene.getRootNode().createChildNode(new Box()).setMaterial(new LambertMaterial());
     //create a save option and specify the file system, so the dependent file will be written to memory
     var opt = FileFormat.WAVEFRONTOBJ.createSaveOptions();
     var mfs = new HashMap<String, MemoryStream>();
     opt.setFileSystem(FileSystem.createMemoryFileSystem(mfs));
     //obj's material file name is associated with the obj's file name, so we need a explicit name.
     opt.setFileName("test.obj");
     try (var ms = new MemoryStream())
     {
         scene.save(ms, opt);
     }
     //the test.obj was written to variable ms, and we can also get the test.mtl file content by
     var materialFile = mfs.get("test.mtl");

createZipFileSystem(Stream stream)

public static FileSystem createZipFileSystem(Stream stream)

Create a file system to provide to the read-only access to speicified zip file or zip stream. File system will be disposed after the open/save operation.

Parameters:

ParameterTypeDescription
streamStreamThe stream to access the zip file

Returns: FileSystem - A zip file system

createZipFileSystem(Stream stream, String baseDir)

public static FileSystem createZipFileSystem(Stream stream, String baseDir)

Create a file system to provide to the read-only access to speicified zip file or zip stream. File system will be disposed after the open/save operation.

Parameters:

ParameterTypeDescription
streamStreamThe stream to access the zip file
baseDirjava.lang.StringThe base directory inside the zip file.

Returns: FileSystem - A zip file system

createZipFileSystem(String fileName)

public static FileSystem createZipFileSystem(String fileName)

File system to provide to the read-only access to speicified zip file or zip stream. File system will be disposed after the open/save operation.

Parameters:

ParameterTypeDescription
fileNamejava.lang.StringFile name to the zip file.

Returns: FileSystem - A zip file system

equals(Object arg0)

public boolean equals(Object arg0)

Parameters:

ParameterTypeDescription
arg0java.lang.Object

Returns: boolean

getClass()

public final native Class<?> getClass()

Returns: java.lang.Class

hashCode()

public native int hashCode()

Returns: int

notify()

public final native void notify()

notifyAll()

public final native void notifyAll()

readFile(String fileName, IOConfig options)

public abstract Stream readFile(String fileName, IOConfig options)

Create a stream for reading dependencies.

Parameters:

ParameterTypeDescription
fileNamejava.lang.StringFile’s name to open for reading
optionsIOConfigSave or load options

Returns: Stream - Stream for reading the file.

toString()

public String toString()

Returns: java.lang.String

wait()

public final void wait()

wait(long arg0)

public final void wait(long arg0)

Parameters:

ParameterTypeDescription
arg0long

wait(long arg0, int arg1)

public final void wait(long arg0, int arg1)

Parameters:

ParameterTypeDescription
arg0long
arg1int

writeFile(String fileName, IOConfig options)

public abstract Stream writeFile(String fileName, IOConfig options)

Create a stream for writing dependencies.

Parameters:

ParameterTypeDescription
fileNamejava.lang.StringThe file’s name to open for writing
optionsIOConfigSave or load options

Returns: Stream - Stream for writing the file