luoqian 8270cf198b feat: 前端组件拆分与文件库目录浏览功能
- 将 App.vue 拆分为 AdminPage、ClientPage、QrCodeModal 三个独立组件
- 新增 BrowseDirectory 接口,基于 RelativePath 实现层级目录浏览
- 前端新增面包屑导航、文件夹网格、文件列表等目录浏览 UI
- 新增对应 CSS 样式(breadcrumb、folder-grid、file-list 等)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 11:59:45 +08:00

32 lines
1.4 KiB
C#

using Avalonia_Common.Core;
namespace Avalonia_Services.Services.FileLibrary
{
public interface IFileLibraryService
{
Task<List<DriveDto>> GetDrivesAsync(CancellationToken cancellationToken = default);
Task<List<DirectoryDto>> GetDirectoriesAsync(string? path, CancellationToken cancellationToken = default);
Task<List<LibraryRootDto>> GetRootsAsync(CancellationToken cancellationToken = default);
Task<LibraryRootDto> AddRootAsync(AddLibraryRootRequest request, CancellationToken cancellationToken = default);
Task<LibraryRootDto> SetRootEnabledAsync(UpdateLibraryRootRequest request, CancellationToken cancellationToken = default);
Task DeleteRootAsync(DeleteLibraryRootRequest request, CancellationToken cancellationToken = default);
Task<LibraryRootDto> ScanRootAsync(int rootId, CancellationToken cancellationToken = default);
Task ScanDueRootsAsync(CancellationToken cancellationToken = default);
Task<PagedResponse<FileRecordDto>> SearchFilesAsync(SearchFilesRequest request, CancellationToken cancellationToken = default);
Task<FileRecordDto?> GetFileAsync(int id, CancellationToken cancellationToken = default);
Task<TextPreviewDto?> GetTextPreviewAsync(int id, CancellationToken cancellationToken = default);
Task<BrowseDirectoryResponse> BrowseDirectoryAsync(BrowseDirectoryRequest request, CancellationToken cancellationToken = default);
}
}