Blazor组件自做十一 : File System Access 文件系统访问 组件
Blazor File System Access 文件系统访问 组件
Web 应用程序与用户本地设备上的文件进行交互
File System Access API(以前称为 Native File System API,在此之前称为 Writeable Files API)使开发人员能够构建强大的 Web 应用程序,与用户本地设备上的文件进行交互,例如 IDE、照片和视频编辑器、文本编辑器等。用户授予 Web 应用访问权限后,此 API 允许他们直接读取或保存对用户设备上文件和文件夹的更改。除了读取和写入文件之外,文件系统访问 API 还提供打开目录和枚举其内容的能力。
浏览器支持:
chrome 86 | firfox × | edge 86 | safari ×
Windows、macOS、ChromeOS 和 Linux 上的大多数 Chromium 浏览器目前都支持文件系统访问 API
示例:
https://blazor.app1.es/FileSystem
使用方法:
1.nuget包
BootstrapBlazor.FileSystem
2._Imports.razor 文件 或者页面添加 添加组件库引用
@using BootstrapBlazor.Components
3.razor页面
<FileSystem OnFileText="OnFileText"
OnFileStream="OnFileStream"
OnDirectory="OnDirectory"
/>
<pre>@contents</pre>
@code{
private string contents;
private Task OnFileText(string contents)
{
this.contents = contents;
StateHasChanged();
return Task.CompletedTask;
}
private Task OnFileStream(Stream stream)
{
//using MiniExcelLibs
//private string contentsExcel;
//var rows = stream.Query().ToList();
//rows.ForEach(a=> contentsExcel += Environment.NewLine + string.Join(" | " , a ));
StateHasChanged();
return Task.CompletedTask;
}
private Task OnDirectory(List<string> dirs)
{
if (dirs == null || !dirs.Any()) return Task.CompletedTask;
contents += "Dir:" + Environment.NewLine;
contents += dirs.First() + Environment.NewLine;
foreach (var item in dirs.Skip(1).OrderByDescending(a => a.StartsWith("+")).ThenBy(a => a))
{
contents += item + Environment.NewLine;
}
StateHasChanged();
return Task.CompletedTask;
}
}
演示地址 https://blazor.app1.es/filesystems
例: 打开文件读取为内存流用 MiniExcel 打开
使用方法
-
新建/打开文本文件
-
打开目录浏览
关联项目
FreeSql QQ群:4336577
BA & Blazor QQ群:795206915
Maui Blazor 中文社区 QQ群:645660665
知识共享许可协议
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名AlexChow(包含链接: https://github.com/densen2014 ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系 。
转载声明
本文来自博客园,作者:周创琳 AlexChow,转载请注明原文链接:https://www.cnblogs.com/densen2014/p/16812225.html
AlexChow
今日头条 | 博客园 | 知乎 | Gitee | GitHub