From 31d963f7eb2d3615b0d0ab6ced87d06142d83883 Mon Sep 17 00:00:00 2001 From: Josh Ferrell Date: Mon, 24 Nov 2025 21:10:38 -0500 Subject: Add APIs for getting files in a project folder --- python/project.py | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'python') 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) -- cgit v1.3.1