Initial commit: FluidExplorer:从零实现的 WinUI 3 文件资源管理器替代品(Mica、命令栏、面包屑)

This commit is contained in:
WpyQwq
2026-09-19 11:54:03 +08:00
commit 5780fde61a
60 changed files with 15035 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
using FluidExplorer.Models;
namespace FluidExplorer.Services.FileSystem;
/// <summary>
/// 快速目录枚举:内部使用 .NET 的 FileSystemEnumerable(NtQueryDirectoryFile 批量缓冲)
/// 一次取回名称/属性/大小/时间,避免逐文件 Win32 调用。
/// </summary>
public interface IFileSystemService
{
/// <summary>
/// 异步枚举目录,分批回调(首批尽可能快,保证 UI 立刻有内容),
/// 整体可取消;无权限/网络超时不抛异常,通过 listing.Error 汇报。
/// </summary>
Task EnumerateAsync(
string path,
FolderListing listing,
Func<IReadOnlyList<FileEntry>, Task> onBatch,
int batchSize = 256,
CancellationToken cancellationToken = default);
/// <summary>同步枚举(供后台索引/搜索回退用),返回全部条目。</summary>
IReadOnlyList<FileEntry> Enumerate(string path, bool includeHidden = true);
bool DirectoryExists(string path);
bool FileExists(string path);
/// <summary>计算文件夹大小(后台、可取消)。</summary>
Task<long> GetDirectorySizeAsync(string path, CancellationToken cancellationToken);
}