From 7b4f4b389d9d89d49e77ebfe872ca25412517758 Mon Sep 17 00:00:00 2001 From: dukai Date: Wed, 28 May 2025 14:51:12 +0800 Subject: [PATCH] Update: update list dir add lastFileName params --- api_directory.go | 4 ++-- engine/filesystem_manager.go | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/api_directory.go b/api_directory.go index 61d5cb4..f801758 100644 --- a/api_directory.go +++ b/api_directory.go @@ -62,7 +62,7 @@ func (s *Service) HandleListDirectory( limit := req.QueryInt("limit") newPath := utils.NormalizePath(path) - rawEntries, moreAvailable, err := s.FileSystemManager.ListDirectoryEntries( + rawEntries, moreAvailable, lastFileName, err := s.FileSystemManager.ListDirectoryEntries( context.Background(), utils.FullPath(newPath), startFileName, @@ -92,7 +92,7 @@ func (s *Service) HandleListDirectory( } } result.Entries = entries - result.LastFileName = entries[len(entries)-1].Name + result.LastFileName = lastFileName } return resp.OK(result).JSON() diff --git a/engine/filesystem_manager.go b/engine/filesystem_manager.go index c1ff914..a286f86 100644 --- a/engine/filesystem_manager.go +++ b/engine/filesystem_manager.go @@ -88,11 +88,11 @@ func (f *FileSystemManager) MakeDirectory(ctx context.Context, path utils.FullPa return f.meta.InsertEntry(ctx, entry) } -func (f *FileSystemManager) ListDirectoryEntries(ctx context.Context, p utils.FullPath, startFileName string, inclusive bool, limit int64) (entries []*utils.Entry, hasMore bool, err error) { +func (f *FileSystemManager) ListDirectoryEntries(ctx context.Context, p utils.FullPath, startFileName string, inclusive bool, limit int64) (entries []*utils.Entry, hasMore bool, lastFileName string, err error) { f.RLock() defer f.RUnlock() - _, err = f.StreamListDirectoryEntries(ctx, p, startFileName, inclusive, limit+1, func(entry *utils.Entry) bool { + lastFileName, err = f.StreamListDirectoryEntries(ctx, p, startFileName, inclusive, limit+1, func(entry *utils.Entry) bool { entries = append(entries, entry) return true }) @@ -102,7 +102,7 @@ func (f *FileSystemManager) ListDirectoryEntries(ctx context.Context, p utils.Fu entries = entries[:limit] } - return entries, hasMore, err + return entries, hasMore, lastFileName, err } func (f *FileSystemManager) StreamListDirectoryEntries(ctx context.Context, p utils.FullPath, startFileName string, inclusive bool, limit int64, eachEntryFunc meta.ListEachEntryFunc) (lastFileName string, err error) {