Package ghidra.framework.store.local
Class MangledLocalFileSystem
java.lang.Object
ghidra.framework.store.local.LocalFileSystem
ghidra.framework.store.local.MangledLocalFileSystem
- All Implemented Interfaces:
FileSystem
MangledLocalFileSystem
implements the legacy project data storage
scheme which utilizes a simplified name mangling which provides case-sensitive
file-naming with support for spaces. Project folder hierarchy maps directly to
the actual storage hierarchy.-
Nested Class Summary
Nested classes/interfaces inherited from class ghidra.framework.store.local.LocalFileSystem
LocalFileSystem.ItemStorage
-
Field Summary
Fields inherited from class ghidra.framework.store.local.LocalFileSystem
eventManager, HIDDEN_DIR_PREFIX, HIDDEN_DIR_PREFIX_CHAR, HIDDEN_ITEM_PREFIX, isVersioned, readOnly, root
Fields inherited from interface ghidra.framework.store.FileSystem
SEPARATOR, SEPARATOR_CHAR
-
Method Summary
Modifier and TypeMethodDescriptionprotected LocalFileSystem.ItemStorage
allocateItemStorage
(String folderPath, String itemName) Allocate a new storage locationvoid
Convert this mangled filesystem to an indexed filesystem.void
createFolder
(String parentPath, String folderName) Creates a new subfolder within the specified parent folder.protected void
deallocateItemStorage
(String folderPath, String itemName) Deallocate item storagevoid
deleteFolder
(String folderPath) Delete the specified folder.protected LocalFileSystem.ItemStorage
findItemStorage
(String folderPath, String itemName) Find an existing storage locationboolean
folderExists
(String folderPath) Returns true if the folder specified by the path exists.String[]
getFolderNames
(String folderPath) Return a list of subfolders (by name) that are stored within the specified folder path.int
Returns the number of folder items contained within this file-system.String[]
getItemNames
(String folderPath, boolean includeHiddenFiles) int
boolean
void
moveFolder
(String parentPath, String folderName, String newParentPath) Move the specified folder to the path specified by newFolderPath.void
renameFolder
(String parentPath, String folderName, String newFolderName) Renames the specified folder to a new name.Methods inherited from class ghidra.framework.store.local.LocalFileSystem
addFileSystemListener, checkDisposed, cleanupAfterConstruction, createDatabase, createDatabase, createDataFile, createFile, createTemporaryDatabase, deleteEmptyVersionedFolders, dispose, escapeHiddenDirPrefixChars, fileExists, fileIdChanged, getItem, getItem, getItemNames, getItems, getLocalFileSystem, getName, getParentPath, getPath, getUserName, isHiddenDirName, isOnline, isReadOnly, isRefreshRequired, isShared, isValidNameCharacter, isVersioned, itemDeleted, log, moveItem, removeFileSystemListener, setAssociatedRepositoryLogger, setValidationRequired, testValidName, unescapeHiddenDirPrefixChars
-
Field Details
-
MAX_NAME_LENGTH
public static final int MAX_NAME_LENGTH- See Also:
-
-
Method Details
-
getMaxNameLength
public int getMaxNameLength()- Specified by:
getMaxNameLength
in classLocalFileSystem
- Returns:
- the maximum name length permitted for folders or items.
-
findItemStorage
protected LocalFileSystem.ItemStorage findItemStorage(String folderPath, String itemName) throws FileNotFoundException Find an existing storage location- Specified by:
findItemStorage
in classLocalFileSystem
- Parameters:
folderPath
-itemName
-- Returns:
- storage location. A non-null value does not guarantee that the associated item actually exists.
- Throws:
FileNotFoundException
-
allocateItemStorage
protected LocalFileSystem.ItemStorage allocateItemStorage(String folderPath, String itemName) throws IOException, InvalidNameException Allocate a new storage location- Specified by:
allocateItemStorage
in classLocalFileSystem
- Parameters:
folderPath
-itemName
-- Returns:
- storage location
- Throws:
DuplicateFileException
- if item path has previously been allocatedIOException
- if invalid path/item name specifiedInvalidNameException
- if folderPath or itemName contains invalid characters
-
deallocateItemStorage
Deallocate item storage- Specified by:
deallocateItemStorage
in classLocalFileSystem
- Parameters:
folderPath
-itemName
-
-
getItemCount
public int getItemCount()Description copied from interface:FileSystem
Returns the number of folder items contained within this file-system. -
getItemNames
- Specified by:
getItemNames
in classLocalFileSystem
- Throws:
IOException
-
getFolderNames
Description copied from interface:FileSystem
Return a list of subfolders (by name) that are stored within the specified folder path.- Throws:
IOException
- if IO error occurs.
-
createFolder
public void createFolder(String parentPath, String folderName) throws InvalidNameException, IOException Description copied from interface:FileSystem
Creates a new subfolder within the specified parent folder.- Parameters:
parentPath
- folder path of parentfolderName
- name of new subfolder- Throws:
InvalidNameException
- if the name does not have all alphanumericsIOException
- thrown if an IO error occurs.
-
deleteFolder
Description copied from interface:FileSystem
Delete the specified folder.- Parameters:
folderPath
- path of folder to be deleted- Throws:
IOException
- if error occurred during delete.
-
moveFolder
public void moveFolder(String parentPath, String folderName, String newParentPath) throws InvalidNameException, IOException Description copied from interface:FileSystem
Move 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:
InvalidNameException
- if the new FolderPath contains an illegal file name.IOException
- if an IO error occurs.
-
renameFolder
public void renameFolder(String parentPath, String folderName, String newFolderName) throws InvalidNameException, IOException Description copied from interface:FileSystem
Renames 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:
InvalidNameException
- if the new FolderName contains an illegal file name.IOException
- if an IO error occurs.
-
folderExists
Description copied from interface:FileSystem
Returns true if the folder specified by the path exists.- Specified by:
folderExists
in interfaceFileSystem
- Specified by:
folderExists
in classLocalFileSystem
- Parameters:
folderPath
- the name of the folder to check for existence.- Returns:
- true if the folder exists.
-
migrationInProgress
public boolean migrationInProgress()- Overrides:
migrationInProgress
in classLocalFileSystem
-
convertToIndexedLocalFileSystem
Convert this mangled filesystem to an indexed filesystem. This instance should be discarded and not used once the conversion has completed.- Throws:
IOException
-