SimpleW.Service.FileBrowser
26.1.0-alpha.20260904-2180
dotnet add package SimpleW.Service.FileBrowser --version 26.1.0-alpha.20260904-2180
NuGet\Install-Package SimpleW.Service.FileBrowser -Version 26.1.0-alpha.20260904-2180
<PackageReference Include="SimpleW.Service.FileBrowser" Version="26.1.0-alpha.20260904-2180" />
<PackageVersion Include="SimpleW.Service.FileBrowser" Version="26.1.0-alpha.20260904-2180" />
<PackageReference Include="SimpleW.Service.FileBrowser" />
paket add SimpleW.Service.FileBrowser --version 26.1.0-alpha.20260904-2180
#r "nuget: SimpleW.Service.FileBrowser, 26.1.0-alpha.20260904-2180"
#:package SimpleW.Service.FileBrowser@26.1.0-alpha.20260904-2180
#addin nuget:?package=SimpleW.Service.FileBrowser&version=26.1.0-alpha.20260904-2180&prerelease
#tool nuget:?package=SimpleW.Service.FileBrowser&version=26.1.0-alpha.20260904-2180&prerelease
SimpleW.Service.FileBrowser
SimpleW.Service.FileBrowser provides a small web file browser for SimpleW.
It can list files and directories, create folders, rename, move, delete to an internal trash directory, and upload files or directories. Large files are uploaded in chunks.
using System.Net;
using SimpleW;
using SimpleW.Service.FileBrowser;
var server = new SimpleWServer(IPAddress.Any, 8080);
server.Configure(options => {
options.MaxRequestBodySize = 32 * 1024 * 1024;
});
server.UseFileBrowserModule(options => {
options.Path = @"C:\uploads";
options.Prefix = "/files";
options.EventsPrefix = "/files/api/events";
options.EnableEvents = true;
// options.ClientPath = @"C:\custom-filebrowser-client";
options.AllowAnonymous = true;
options.UploadChunkThresholdBytes = 100 * 1024 * 1024;
options.UploadChunkBytes = 16 * 1024 * 1024;
options.DefaultPageSize = 100;
options.MaxPageSize = 1000;
});
await server.RunAsync();
By default, the module is closed. Configure Authorize or set AllowAnonymous = true.
The web UI is embedded directly in SimpleW.Service.FileBrowser.dll; the NuGet package does not copy a client/ directory to the consuming application.
Debug builds automatically serve the local SimpleW.Service.FileBrowser/client directory through StaticFilesModule when it can be found, so client changes are read directly from disk without rebuilding the module.
Release builds and Debug builds without a local client directory serve the embedded resources.
Set ClientPath to explicitly serve a custom client directory in any build configuration.
When events are enabled, the web UI opens an EventSource on EventsPrefix.
File operations return 202 Accepted and publish:
filebrowser.operation.startedfilebrowser.operation.completedfilebrowser.operation.failedfilebrowser.operation.cancelledfilebrowser.upload.progressfilebrowser.upload.completedfilebrowser.upload.cancelledfilebrowser.changed
POST /files/api/operations/cancel cancels pending/running operations and active upload sessions on a best-effort basis.
UploadChunkBytes must be lower than or equal to SimpleWServerOptions.MaxRequestBodySize, because SimpleW validates each request body before the module receives it.
Listing, search, sorting, and pagination
GET /files/api/list lists only the direct children of the requested directory. Results are paginated by default and directories always appear before files.
| Query parameter | Description | Default |
|---|---|---|
path |
Relative directory to list. | Root directory |
search |
Case-insensitive text contained in the item name. | Empty |
sort |
name, size, or modified. |
name |
direction |
asc or desc. |
asc |
pageSize |
Number of entries, up to MaxPageSize. |
DefaultPageSize |
continuationToken |
Opaque token returned by the preceding page. | Empty |
GET /files/api/list?path=documents&search=report&sort=modified&direction=desc&pageSize=100
The response contains keyCount, isTruncated, and nextContinuationToken in addition to path, parent, the effective search/sort parameters, and items. When isTruncated is true, pass nextContinuationToken unchanged as continuationToken to request the next page. Tokens are bound to the path, search, sort, direction, and page size that created them.
GET /files/api/download?path=documents/report.pdf streams an authorized file as an attachment. In the embedded UI, clicking a file name uses this endpoint to download it.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 26.1.0-alpha.20260904-2180 | 0 | 9/4/2026 |
| 26.1.0-alpha.20260829-2141 | 48 | 8/29/2026 |
| 26.1.0-alpha.20260825-2081 | 58 | 8/25/2026 |
| 26.1.0-alpha.20260825-2077 | 58 | 8/25/2026 |
| 26.1.0-alpha.20260825-2075 | 57 | 8/25/2026 |
