Package ghidra.framework.store
Interface FileSystem
- 
- All Known Implementing Classes:
- IndexedLocalFileSystem,- IndexedV1LocalFileSystem,- LocalFileSystem,- MangledLocalFileSystem,- RemoteFileSystem
 
 public interface FileSystemFileSystemprovides a hierarchical view and management of a set of files and folders.
- 
- 
Field SummaryFields Modifier and Type Field Description static java.lang.StringSEPARATORstatic charSEPARATOR_CHARCharacter used to separate folder and item names within a path string.
 - 
Method SummaryAll Methods Instance Methods Abstract Methods Modifier and Type Method Description voidaddFileSystemListener(FileSystemListener listener)Adds the given listener to be notified of file system changes.DatabaseItemcreateDatabase(java.lang.String parentPath, java.lang.String name, java.lang.String fileID, BufferFile bufferFile, java.lang.String comment, java.lang.String contentType, boolean resetDatabaseId, TaskMonitor monitor, java.lang.String user)Create a new database item within the specified parent folder using the contents of the specified BufferFile.ManagedBufferFilecreateDatabase(java.lang.String parentPath, java.lang.String name, java.lang.String fileID, java.lang.String contentType, int bufferSize, java.lang.String user, java.lang.String projectPath)Create a new empty database item within the specified parent folder.DataFileItemcreateDataFile(java.lang.String parentPath, java.lang.String name, java.io.InputStream istream, java.lang.String comment, java.lang.String contentType, TaskMonitor monitor)Creates a new empty data file within the specified parent folder.FolderItemcreateFile(java.lang.String parentPath, java.lang.String name, java.io.File packedFile, TaskMonitor monitor, java.lang.String user)Creates a new file item from a packed file.voidcreateFolder(java.lang.String parentPath, java.lang.String folderName)Creates a new subfolder within the specified parent folder.voiddeleteFolder(java.lang.String folderPath)Delete the specified folder.voiddispose()Cleanup and release resourcesbooleanfileExists(java.lang.String folderPath, java.lang.String name)Returns true if the file existsbooleanfolderExists(java.lang.String folderPath)Returns true if the folder specified by the path exists.java.lang.String[]getFolderNames(java.lang.String folderPath)Return a list of subfolders (by name) that are stored within the specified folder path.FolderItemgetItem(java.lang.String fileID)Returns the FolderItem specified by its unique File-IDFolderItemgetItem(java.lang.String folderPath, java.lang.String name)Returns the FolderItem in the given folder with the given nameintgetItemCount()Returns the number of folder items contained within this file-system.java.lang.String[]getItemNames(java.lang.String folderPath)Returns a list of the folder item names contained in the given folder.java.lang.StringgetUserName()Get user name associated with this filesystem.booleanisOnline()Returns true if file-system is on-line.booleanisReadOnly()Returns true if file-system is read-only.booleanisShared()Returns true if this file system is sharedbooleanisVersioned()Returns true if the file-system requires check-outs when modifying folder items.voidmoveFolder(java.lang.String parentPath, java.lang.String folderName, java.lang.String newParentPath)Move the specified folder to the path specified by newFolderPath.voidmoveItem(java.lang.String folderPath, java.lang.String name, java.lang.String newFolderPath, java.lang.String newName)Moves the specified item to a new folder.voidremoveFileSystemListener(FileSystemListener listener)Removes the listener from being notified of file system changes.voidrenameFolder(java.lang.String parentPath, java.lang.String folderName, java.lang.String newFolderName)Renames the specified folder to a new name.
 
- 
- 
- 
Field Detail- 
SEPARATOR_CHARstatic final char SEPARATOR_CHAR Character used to separate folder and item names within a path string.- See Also:
- Constant Field Values
 
 - 
SEPARATORstatic final java.lang.String SEPARATOR 
 
- 
 - 
Method Detail- 
getUserNamejava.lang.String getUserName() Get user name associated with this filesystem. In the case of a remote filesystem this will correspond to the name used during login/authentication. A null value may be returned if user name unknown.
 - 
isVersionedboolean isVersioned() Returns true if the file-system requires check-outs when modifying folder items.
 - 
isOnlineboolean isOnline() Returns true if file-system is on-line.
 - 
isReadOnlyboolean isReadOnly() throws java.io.IOExceptionReturns true if file-system is read-only.- Throws:
- java.io.IOException
 
 - 
getItemCountint getItemCount() throws java.io.IOException, java.lang.UnsupportedOperationExceptionReturns the number of folder items contained within this file-system.- Throws:
- java.io.IOException
- java.lang.UnsupportedOperationException- if file-system does not support this operation
 
 - 
getItemNamesjava.lang.String[] getItemNames(java.lang.String folderPath) throws java.io.IOExceptionReturns a list of the folder item names contained in the given folder.- Parameters:
- folderPath- the path of the folder.
- Returns:
- a list of folder item names.
- Throws:
- java.io.IOException
 
 - 
getItemFolderItem getItem(java.lang.String folderPath, java.lang.String name) throws java.io.IOException Returns the FolderItem in the given folder with the given name- Parameters:
- folderPath- the folder path containing the item.
- name- the name of the item.
- Returns:
- the FolderItem with the given folderPath and name, or null if it doesn't exist.
- Throws:
- java.io.IOException- if IO error occurs.
 
 - 
getItemFolderItem getItem(java.lang.String fileID) throws java.io.IOException, java.lang.UnsupportedOperationException Returns the FolderItem specified by its unique File-ID- Parameters:
- fileID- the items unique file ID
- Returns:
- the FolderItem with the given folderPath and name, or null if it doesn't exist.
- Throws:
- java.io.IOException- if IO error occurs.
- java.lang.UnsupportedOperationException- if file-system does not support this operation
 
 - 
getFolderNamesjava.lang.String[] getFolderNames(java.lang.String folderPath) throws java.io.IOExceptionReturn a list of subfolders (by name) that are stored within the specified folder path.- Throws:
- java.io.FileNotFoundException- if folder path does not exist.
- java.io.IOException- if IO error occurs.
 
 - 
createFoldervoid createFolder(java.lang.String parentPath, java.lang.String folderName) throws InvalidNameException, java.io.IOExceptionCreates a new subfolder within the specified parent folder.- Parameters:
- parentPath- folder path of parent
- folderName- name of new subfolder
- Throws:
- DuplicateFileException- if a folder exists with this name
- InvalidNameException- if the name does not have all alphanumerics
- java.io.IOException- thrown if an IO error occurs.
 
 - 
createDatabaseDatabaseItem createDatabase(java.lang.String parentPath, java.lang.String name, java.lang.String fileID, BufferFile bufferFile, java.lang.String comment, java.lang.String contentType, boolean resetDatabaseId, TaskMonitor monitor, java.lang.String user) throws InvalidNameException, java.io.IOException, CancelledException Create a new database item within the specified parent folder using the contents of the specified BufferFile.- Parameters:
- parentPath- folder path of parent
- name- new database name
- fileID- file ID to be associated with new database or null
- bufferFile- data source
- comment- version comment (used for versioned file system only)
- contentType- application defined content type
- resetDatabaseId- if true database ID will be reset for new Database
- monitor- allows the database copy to be monitored and cancelled.
- user- name of user creating item (required for versioned item)
- Returns:
- new DatabaseItem
- Throws:
- java.io.FileNotFoundException- thrown if parent folder does not exist.
- DuplicateFileException- if a folder item exists with this name
- InvalidNameException- if the name does not have all alphanumerics
- java.io.IOException- if an IO error occurs.
- CancelledException- if cancelled by monitor
 
 - 
createDatabaseManagedBufferFile createDatabase(java.lang.String parentPath, java.lang.String name, java.lang.String fileID, java.lang.String contentType, int bufferSize, java.lang.String user, java.lang.String projectPath) throws InvalidNameException, java.io.IOException Create a new empty database item within the specified parent folder. If this is a versioned file-system, the associated item is checked-out. The resulting checkoutId can be obtained from the returned buffer file.- Parameters:
- parentPath- folder path of parent
- name- new database name
- fileID- file ID to be associated with new database or null
- contentType- application defined content type
- bufferSize- buffer size. If copying an existing BufferFile, the buffer size must be the same as the source file.
- user- name of user creating item (required for versioned item)
- projectPath- path of project in which database is checked-out (required for versioned item)
- Returns:
- an empty BufferFile open for read-write.
- Throws:
- java.io.FileNotFoundException- thrown if parent folder does not exist.
- DuplicateFileException- if a folder item exists with this name
- InvalidNameException- if the name does not have all alphanumerics
- java.io.IOException- if an IO error occurs.
 
 - 
createDataFileDataFileItem createDataFile(java.lang.String parentPath, java.lang.String name, java.io.InputStream istream, java.lang.String comment, java.lang.String contentType, TaskMonitor monitor) throws InvalidNameException, java.io.IOException, CancelledException Creates a new empty data file within the specified parent folder.- Parameters:
- parentPath- folder path of parent
- name- new data file name
- istream- source data
- comment- version comment (used for versioned file system only)
- contentType- application defined content type
- monitor- progress monitor (used for cancel support, progress not used since length of input stream is unknown)
- Returns:
- new data file
- Throws:
- DuplicateFileException- Thrown if a folderItem with that name already exists.
- InvalidNameException- if the name has illegal characters. all alphanumerics
- java.io.IOException- if an IO error occurs.
- CancelledException- if cancelled by monitor
 
 - 
createFileFolderItem createFile(java.lang.String parentPath, java.lang.String name, java.io.File packedFile, TaskMonitor monitor, java.lang.String user) throws InvalidNameException, java.io.IOException, CancelledException Creates a new file item from a packed file. The content/item type must be determined from the input stream.- Parameters:
- parentPath- folder path of parent
- name- new data file name
- packedFile- packed file data
- monitor- progress monitor (used for cancel support, progress not used since length of input stream is unknown)
- user- name of user creating item (required for versioned item)
- Returns:
- new item
- Throws:
- InvalidNameException- if the name has illegal characters. all alphanumerics
- java.io.IOException- if an IO error occurs.
- CancelledException- if cancelled by monitor
 
 - 
deleteFoldervoid deleteFolder(java.lang.String folderPath) throws java.io.IOExceptionDelete the specified folder.- Parameters:
- folderPath- path of folder to be deleted
- Throws:
- FolderNotEmptyException- Thrown if the folder is not empty.
- java.io.FileNotFoundException- if there is no folder with the given path name.
- java.io.IOException- if error occurred during delete.
 
 - 
moveFoldervoid moveFolder(java.lang.String parentPath, java.lang.String folderName, java.lang.String newParentPath) throws InvalidNameException, java.io.IOExceptionMove the specified folder to the path specified by newFolderPath. The moved folder must not be an ancestor of the new Parent.- Parameters:
- parentPath- path of parent folder that the moving folder currently resides in.
- folderName- name of the folder within the parentPath to be moved.
- newParentPath- path to where the folder is to be moved.
- Throws:
- java.io.FileNotFoundException- if the moved folder does not exist.
- DuplicateFileException- if folder with the same name exists within the new parent folder
- FileInUseException- if any file within this folder or its decendents are in-use or checked-out
- java.io.IOException- if an IO error occurs.
- InvalidNameException- if the new FolderPath contains an illegal file name.
- java.lang.IllegalArgumentException- if new Parent is invalid.
 
 - 
renameFoldervoid renameFolder(java.lang.String parentPath, java.lang.String folderName, java.lang.String newFolderName) throws InvalidNameException, java.io.IOExceptionRenames the specified folder to a new name.- Parameters:
- parentPath- the parent folder of the folder to be renamed.
- folderName- the current name of the folder to be renamed.
- newFolderName- the name the folder to be renamed to.
- Throws:
- java.io.FileNotFoundException- if the folder to be renamed does not exist.
- DuplicateFileException- if folder with the new name already exists.
- FileInUseException- if any file within this folder or its decendents are in-use or checked-out
- java.io.IOException- if an IO error occurs.
- InvalidNameException- if the new FolderName contains an illegal file name.
 
 - 
moveItemvoid moveItem(java.lang.String folderPath, java.lang.String name, java.lang.String newFolderPath, java.lang.String newName) throws java.io.IOException, InvalidNameExceptionMoves the specified item to a new folder.- Parameters:
- folderPath- path of folder containing the item.
- name- name of the item to be moved.
- newFolderPath- path of folder where item is to be moved.
- Throws:
- java.io.FileNotFoundException- if the item does not exist.
- DuplicateFileException- if item with the same name exists within the new parent folder.
- FileInUseException- if the item is in-use or checked-out
- java.io.IOException- if an IO error occurs.
- InvalidNameException- if the newName is invalid
 
 - 
addFileSystemListenervoid addFileSystemListener(FileSystemListener listener) Adds the given listener to be notified of file system changes.- Parameters:
- listener- the listener to be added.
 
 - 
removeFileSystemListenervoid removeFileSystemListener(FileSystemListener listener) Removes the listener from being notified of file system changes.- Parameters:
- listener-
 
 - 
folderExistsboolean folderExists(java.lang.String folderPath) throws java.io.IOExceptionReturns true if the folder specified by the path exists.- Parameters:
- folderPath- the name of the folder to check for existence.
- Returns:
- true if the folder exists.
- Throws:
- java.io.IOException- if an IO error occurs.
 
 - 
fileExistsboolean fileExists(java.lang.String folderPath, java.lang.String name) throws java.io.IOExceptionReturns true if the file exists- Parameters:
- folderPath- the folderPath of the folder that may contain the file.
- name- the name of the file to check for existence.
- Throws:
- java.io.IOException- if an IO error occurs.
 
 - 
isSharedboolean isShared() Returns true if this file system is shared
 - 
disposevoid dispose() Cleanup and release resources
 
- 
 
-