diff options
| author | Josh Ferrell <josh@vector35.com> | 2025-11-24 21:10:38 -0500 |
|---|---|---|
| committer | Josh Ferrell <josh@vector35.com> | 2025-11-24 21:12:32 -0500 |
| commit | 31d963f7eb2d3615b0d0ab6ced87d06142d83883 (patch) | |
| tree | e5d930f9992ef430bf460ca52acdee62d863e968 /python/project.py | |
| parent | 0f1261500334e3aafb867ef397b11fef7ff201c4 (diff) | |
Add APIs for getting files in a project folder
Diffstat (limited to 'python/project.py')
| -rw-r--r-- | python/project.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/python/project.py b/python/project.py index 7df3d2b5..a7985af1 100644 --- a/python/project.py +++ b/python/project.py @@ -383,6 +383,29 @@ class ProjectFolder: """ return core.BNProjectFolderExport(self._handle, str(dest), None, _wrap_progress(progress_func)) + @property + def files(self) -> List['ProjectFile']: + """ + Get the list of files in this folder + + :return: List of files contained in the folder + """ + + count = ctypes.c_size_t() + value = core.BNProjectFolderGetFiles(self._handle, count) + if value is None: + raise ProjectException("Failed to get list of project files in folder") + result = [] + try: + for i in range(count.value): + file_handle = core.BNNewProjectFileReference(value[i]) + if file_handle is None: + raise ProjectException("core.BNNewProjectFileReference returned None") + result.append(ProjectFile(file_handle)) + return result + finally: + core.BNFreeProjectFileList(value, count.value) + class Project: """ @@ -788,3 +811,26 @@ class Project: core.BNProjectBeginBulkOperation(self._handle) yield core.BNProjectEndBulkOperation(self._handle) + + def get_files_in_folder(self, folder: Optional['ProjectFolder']) -> List['ProjectFile']: + """ + Get the list of files in a folder + + :return: List of files contained in the folder + """ + + count = ctypes.c_size_t() + folder_handle = None if folder is None else folder._handle + value = core.BNProjectGetFilesInFolder(self._handle, folder_handle, count) + if value is None: + raise ProjectException("Failed to get list of project files in folder") + result = [] + try: + for i in range(count.value): + file_handle = core.BNNewProjectFileReference(value[i]) + if file_handle is None: + raise ProjectException("core.BNNewProjectFileReference returned None") + result.append(ProjectFile(file_handle)) + return result + finally: + core.BNFreeProjectFileList(value, count.value) |
