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
FieldsFields inherited from class ghidra.framework.store.local.LocalFileSystem
eventManager, HIDDEN_DIR_PREFIX, HIDDEN_DIR_PREFIX_CHAR, HIDDEN_ITEM_PREFIX, isVersioned, readOnly, rootFields inherited from interface ghidra.framework.store.FileSystem
SEPARATOR, SEPARATOR_CHAR -
Method Summary
Modifier and TypeMethodDescriptionprotected LocalFileSystem.ItemStorageallocateItemStorage(String folderPath, String itemName) Allocate a new storage locationvoidConvert this mangled filesystem to an indexed filesystem.voidcreateFolder(String parentPath, String folderName) Creates a new subfolder within the specified parent folder.protected voiddeallocateItemStorage(String folderPath, String itemName) Deallocate item storagevoiddeleteFolder(String folderPath) Delete the specified folder.protected LocalFileSystem.ItemStoragefindItemStorage(String folderPath, String itemName) Find an existing storage locationbooleanfolderExists(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.intReturns the number of folder items contained within this file-system.String[]getItemNames(String folderPath, boolean includeHiddenFiles) intbooleanvoidmoveFolder(String parentPath, String folderName, String newParentPath) Move the specified folder to the path specified by newFolderPath.voidrenameFolder(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:
getMaxNameLengthin 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:
findItemStoragein 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:
allocateItemStoragein 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:
deallocateItemStoragein classLocalFileSystem- Parameters:
folderPath-itemName-
-
getItemCount
public int getItemCount()Description copied from interface:FileSystemReturns the number of folder items contained within this file-system. -
getItemNames
- Specified by:
getItemNamesin classLocalFileSystem- Throws:
IOException
-
getFolderNames
Description copied from interface:FileSystemReturn 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:FileSystemCreates 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:FileSystemDelete 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:FileSystemMove 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:FileSystemRenames 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:FileSystemReturns true if the folder specified by the path exists.- Specified by:
folderExistsin interfaceFileSystem- Specified by:
folderExistsin classLocalFileSystem- Parameters:
folderPath- the name of the folder to check for existence.- Returns:
- true if the folder exists.
-
migrationInProgress
public boolean migrationInProgress()- Overrides:
migrationInProgressin 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
-