If you want to list all files within a storage location you do:
from filebrowser.sites import site
from filebrowser.base import FileListing
filelisting = FileListing(site.storage.location, sorting_by='date', sorting_order='desc')
In order to show all files except folders, you could define a filter function:
def filter_filelisting(item):
# item is a FileObject
return item.filetype != "Folder"
filelisting = FileListing(site.storage.location, filter_func=filter_listing, sorting_by='date', sorting_order='desc')
For the below examples, we’re using this folder-structure.:
/media/uploads/testfolder/testimage.jpg
/media/uploads/blog/1/images/blogimage.jpg
Note
We defined filter_browse as filter_func (see sites.py). And we did not define a VERSIONS_BASEDIR for this demonstration, though it is highly recommended to use one.
Returns all items for the given path with os.listdir(path):
>>> for item in filelisting.listing():
... print item
blog
testfolder
Returns all items for the given path with os.walk(path):
>>> for item in filelisting.walk():
... print item
blog
blog/1
blog/1/images
blog/1/images/blogimage.jpg
blog/1/images/blogimage_admin_thumbnail.jpg
blog/1/images/blogimage_medium.jpg
blog/1/images/blogimage_small.jpg
blog/1/images/blogimage_thumbnail.jpg
testfolder
testfolder/testimage.jpg
Returns a sorted list of FileObjects for self.listing():
>>> for item in filelisting.files_listing_total():
... print item
uploads/blog/
uploads/testfolder/
Returns a sorted list of FileObjects for self.walk():
>>> for item in filelisting.files_walk_total():
... print item
uploads/blog/
uploads/blog/1/
uploads/blog/1/images/
uploads/blog/1/images/blogimage.jpg
uploads/blog/1/images/blogimage_admin_thumbnail.jpg
uploads/blog/1/images/blogimage_medium.jpg
uploads/blog/1/images/blogimage_small.jpg
uploads/blog/1/images/blogimage_thumbnail.jpg
uploads/testfolder/
uploads/testfolder/testimage.jpg
Returns a sorted and filtered list of FileObjects for self.listing():
>>> for item in filelisting.files_listing_filtered():
... print item
uploads/blog/
uploads/testfolder/
Returns a sorted and filtered list of FileObjects for self.walk():
>>> for item in filelisting.files_walk_filtered():
... print item
uploads/blog/
uploads/blog/1/
uploads/blog/1/images/
uploads/blog/1/images/blogimage.jpg
uploads/testfolder/
uploads/testfolder/testimage.jpg
Note
The versions are not listed (compared with files_walk_total) because of filter_func.
Number of total files, based on files_listing_total:
>>> filelisting.results_listing_total()
2
Number of total files, based on files_walk_total:
>>> filelisting.results_walk_total()
10
Number of filtered files, based on files_listing_filtered:
>>> filelisting.results_listing_filtered()
2
Number of filtered files, based on files_walk_filtered:
>>> filelisting.results_walk_filtered()
6