Package ghidra.formats.gfilesystem
Class LocalFileSystemSub
- java.lang.Object
-
- ghidra.formats.gfilesystem.LocalFileSystemSub
-
- All Implemented Interfaces:
GFileSystem
,ExtensionPoint
,java.io.Closeable
,java.lang.AutoCloseable
public class LocalFileSystemSub extends java.lang.Object implements GFileSystem
AGFileSystem
interface to a part of the user's local / native file system.This class is a sub-view of the
LocalFileSystem
, and returns hybrid GFile objects that have fully specified FSRL paths that are valid in the Root filesystem, but relative GFile paths.This class's name doesn't end with "FileSystem" to ensure it will not be auto-discovered by the FileSystemFactoryMgr.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface ghidra.util.classfinder.ExtensionPoint
ExtensionPoint.Exclude, ExtensionPoint.Util
-
-
Constructor Summary
Constructors Constructor Description LocalFileSystemSub(java.io.File rootDir, GFileSystem rootFS)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
java.lang.String
getDescription()
Returns a description of this file system.FSRLRoot
getFSRL()
File system's FSRLjava.lang.String
getInfo(GFile file, TaskMonitor monitor)
Returns a multi-line string with information about the specifiedfile
.java.io.InputStream
getInputStream(GFile file, TaskMonitor monitor)
Returns anInputStream
that contains the contents of the specifiedGFile
.java.util.List<GFile>
getListing(GFile directory)
Returns a list offiles
that reside in the specified directory on this filesystem.java.lang.String
getName()
File system volume name.FileSystemRefManager
getRefManager()
Returns theref manager
that is responsible for creating and releasingrefs
to this filesystem.java.lang.String
getType()
Returns the type of this file system.boolean
isClosed()
Returns true if the filesystem has beenclosed
boolean
isStatic()
Indicates if this filesystem is a static snapshot or changes.GFile
lookup(java.lang.String path)
Retrieves aGFile
from this filesystem based on its full path and filename.java.lang.String
toString()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface ghidra.formats.gfilesystem.GFileSystem
getFileCount
-
-
-
-
Constructor Detail
-
LocalFileSystemSub
public LocalFileSystemSub(java.io.File rootDir, GFileSystem rootFS) throws java.io.IOException
- Throws:
java.io.IOException
-
-
Method Detail
-
getType
public java.lang.String getType()
Description copied from interface:GFileSystem
Returns the type of this file system.This default implementation returns the type value in
FileSystemInfo
annotation.- Specified by:
getType
in interfaceGFileSystem
- Returns:
- type string
-
getDescription
public java.lang.String getDescription()
Description copied from interface:GFileSystem
Returns a description of this file system.This default implementation returns the description value in
FileSystemInfo
annotation.- Specified by:
getDescription
in interfaceGFileSystem
- Returns:
- description string
-
close
public void close()
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
-
isClosed
public boolean isClosed()
Description copied from interface:GFileSystem
Returns true if the filesystem has beenclosed
- Specified by:
isClosed
in interfaceGFileSystem
- Returns:
- boolean true if the filesystem has been closed.
-
isStatic
public boolean isStatic()
Description copied from interface:GFileSystem
Indicates if this filesystem is a static snapshot or changes.- Specified by:
isStatic
in interfaceGFileSystem
- Returns:
- boolean true if the filesystem is static or false if dynamic content.
-
getListing
public java.util.List<GFile> getListing(GFile directory) throws java.io.IOException
Description copied from interface:GFileSystem
Returns a list offiles
that reside in the specified directory on this filesystem.- Specified by:
getListing
in interfaceGFileSystem
- Parameters:
directory
- NULL means root of filesystem.- Returns:
List
ofGFile
instances of file in the requested directory.- Throws:
java.io.IOException
- if IO problem.
-
getInfo
public java.lang.String getInfo(GFile file, TaskMonitor monitor)
Description copied from interface:GFileSystem
Returns a multi-line string with information about the specifiedfile
.TODO: this method needs to be refactored to return a Map
instead of a pre-formatted multi-line string. - Specified by:
getInfo
in interfaceGFileSystem
- Parameters:
file
-GFile
to get info message for.monitor
-TaskMonitor
to watch and update progress.- Returns:
- multi-line formatted string with info about the file, or null.
-
getName
public java.lang.String getName()
Description copied from interface:GFileSystem
File system volume name.Typically the name of the container file, or a internally stored 'volume' name.
- Specified by:
getName
in interfaceGFileSystem
- Returns:
- string filesystem volume name.
-
getFSRL
public FSRLRoot getFSRL()
Description copied from interface:GFileSystem
File system's FSRL- Specified by:
getFSRL
in interfaceGFileSystem
- Returns:
FSRLRoot
of this filesystem.
-
lookup
public GFile lookup(java.lang.String path) throws java.io.IOException
Description copied from interface:GFileSystem
Retrieves aGFile
from this filesystem based on its full path and filename.- Specified by:
lookup
in interfaceGFileSystem
- Parameters:
path
- string path and filename of a file located in this filesystem. Usenull
or "/" to retrieve the root directory- Returns:
GFile
instance of requested file, null if not found.- Throws:
java.io.IOException
- if IO error when looking up file.
-
getInputStream
public java.io.InputStream getInputStream(GFile file, TaskMonitor monitor) throws java.io.IOException, CancelledException
Description copied from interface:GFileSystem
Returns anInputStream
that contains the contents of the specifiedGFile
.The caller is responsible for closing the stream.
- Specified by:
getInputStream
in interfaceGFileSystem
- Parameters:
file
-GFile
to get an InputStream formonitor
-TaskMonitor
to watch and update progress- Returns:
- new
InputStream
contains the contents of the file or NULL if the file doesn't have data. - Throws:
java.io.IOException
- if IO problemCancelledException
- if user cancels.
-
getRefManager
public FileSystemRefManager getRefManager()
Description copied from interface:GFileSystem
Returns theref manager
that is responsible for creating and releasingrefs
to this filesystem.- Specified by:
getRefManager
in interfaceGFileSystem
- Returns:
FileSystemRefManager
that manages references to this filesystem.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-