Package ghidra.formats.gfilesystem
Class LocalFileSystem
- java.lang.Object
-
- ghidra.formats.gfilesystem.LocalFileSystem
-
- All Implemented Interfaces:
GFileSystem,ExtensionPoint,java.io.Closeable,java.lang.AutoCloseable
public class LocalFileSystem extends java.lang.Object implements GFileSystem
AGFileSystemimplementation giving access to the user's operating system's local file system.This implementation does not have a
GFileSystemFactoryas this class will be used as the single root filesystem.Closing() this filesystem does nothing.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface ghidra.util.classfinder.ExtensionPoint
ExtensionPoint.Exclude, ExtensionPoint.Util
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringFSTYPE
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()FSRLRootgetFSRL()File system's FSRLjava.lang.StringgetInfo(GFile file, TaskMonitor monitor)Returns a multi-line string with information about the specifiedfile.java.io.InputStreamgetInputStream(GFile file, TaskMonitor monitor)Returns anInputStreamthat contains the contents of the specifiedGFile.java.util.List<GFile>getListing(GFile directory)Returns a list offilesthat reside in the specified directory on this filesystem.java.io.FilegetLocalFile(FSRL fsrl)java.lang.StringgetName()File system volume name.FileSystemRefManagergetRefManager()Returns theref managerthat is responsible for creating and releasingrefsto this filesystem.booleanisClosed()Returns true if the filesystem has beenclosedbooleanisLocalSubdir(FSRL fsrl)Returns true if theFSRLis a local filesystem subdirectory.booleanisStatic()Indicates if this filesystem is a static snapshot or changes.GFileImpllookup(java.lang.String path)Retrieves aGFilefrom this filesystem based on its full path and filename.static LocalFileSystemmakeGlobalRootFS()Create a new instancejava.lang.StringtoString()-
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
getDescription, getFileCount, getType
-
-
-
-
Field Detail
-
FSTYPE
public static final java.lang.String FSTYPE
- See Also:
- Constant Field Values
-
-
Method Detail
-
makeGlobalRootFS
public static LocalFileSystem makeGlobalRootFS()
Create a new instance- Returns:
- new
LocalFileSysteminstance usingFSTYPEas its FSRL type.
-
isLocalSubdir
public boolean isLocalSubdir(FSRL fsrl)
Returns true if theFSRLis a local filesystem subdirectory.- Parameters:
fsrl-FSRLto test.- Returns:
- boolean true if local filesystem directory.
-
getLocalFile
public java.io.File getLocalFile(FSRL fsrl) throws java.io.IOException
- Throws:
java.io.IOException
-
getName
public java.lang.String getName()
Description copied from interface:GFileSystemFile system volume name.Typically the name of the container file, or a internally stored 'volume' name.
- Specified by:
getNamein interfaceGFileSystem- Returns:
- string filesystem volume name.
-
close
public void close()
- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable
-
isStatic
public boolean isStatic()
Description copied from interface:GFileSystemIndicates if this filesystem is a static snapshot or changes.- Specified by:
isStaticin interfaceGFileSystem- Returns:
- boolean true if the filesystem is static or false if dynamic content.
-
getListing
public java.util.List<GFile> getListing(GFile directory)
Description copied from interface:GFileSystemReturns a list offilesthat reside in the specified directory on this filesystem.- Specified by:
getListingin interfaceGFileSystem- Parameters:
directory- NULL means root of filesystem.- Returns:
ListofGFileinstances of file in the requested directory.
-
getInfo
public java.lang.String getInfo(GFile file, TaskMonitor monitor)
Description copied from interface:GFileSystemReturns 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:
getInfoin interfaceGFileSystem- Parameters:
file-GFileto get info message for.monitor-TaskMonitorto watch and update progress.- Returns:
- multi-line formatted string with info about the file, or null.
-
getFSRL
public FSRLRoot getFSRL()
Description copied from interface:GFileSystemFile system's FSRL- Specified by:
getFSRLin interfaceGFileSystem- Returns:
FSRLRootof this filesystem.
-
lookup
public GFileImpl lookup(java.lang.String path) throws java.io.IOException
Description copied from interface:GFileSystemRetrieves aGFilefrom this filesystem based on its full path and filename.- Specified by:
lookupin interfaceGFileSystem- Parameters:
path- string path and filename of a file located in this filesystem. Usenullor "/" to retrieve the root directory- Returns:
GFileinstance 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
Description copied from interface:GFileSystemReturns anInputStreamthat contains the contents of the specifiedGFile.The caller is responsible for closing the stream.
- Specified by:
getInputStreamin interfaceGFileSystem- Parameters:
file-GFileto get an InputStream formonitor-TaskMonitorto watch and update progress- Returns:
- new
InputStreamcontains the contents of the file or NULL if the file doesn't have data. - Throws:
java.io.IOException- if IO problem
-
isClosed
public boolean isClosed()
Description copied from interface:GFileSystemReturns true if the filesystem has beenclosed- Specified by:
isClosedin interfaceGFileSystem- Returns:
- boolean true if the filesystem has been closed.
-
getRefManager
public FileSystemRefManager getRefManager()
Description copied from interface:GFileSystemReturns theref managerthat is responsible for creating and releasingrefsto this filesystem.- Specified by:
getRefManagerin interfaceGFileSystem- Returns:
FileSystemRefManagerthat manages references to this filesystem.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-