G9BlazorComponent.FileManagementSystem
1.0.1.4
dotnet add package G9BlazorComponent.FileManagementSystem --version 1.0.1.4
NuGet\Install-Package G9BlazorComponent.FileManagementSystem -Version 1.0.1.4
<PackageReference Include="G9BlazorComponent.FileManagementSystem" Version="1.0.1.4" />
<PackageVersion Include="G9BlazorComponent.FileManagementSystem" Version="1.0.1.4" />
<PackageReference Include="G9BlazorComponent.FileManagementSystem" />
paket add G9BlazorComponent.FileManagementSystem --version 1.0.1.4
#r "nuget: G9BlazorComponent.FileManagementSystem, 1.0.1.4"
#addin nuget:?package=G9BlazorComponent.FileManagementSystem&version=1.0.1.4
#tool nuget:?package=G9BlazorComponent.FileManagementSystem&version=1.0.1.4
G9BlazorComponent.FileManagementSystem
G9BlazorComponent.FileManagementSystem is a full-featured, customizable, and extensible Blazor file management component designed to provide powerful file browsing, manipulation, and remote SSH/SFTP access capabilities. It supports drag-and-drop uploads, context menus, real-time operations, SSH terminals, and more. This library is built to support file management for both local and remote server environments with modern UI and multi-language support.
๐ง Features
๐ File/Directory browsing for:
- Public area
- Private area
- Remote SSH/SFTP
๐ Tabbed interface for multi-path navigation
๐ฑ๏ธ Context menu and mouse/touch event handling (click, double-click, right-click, hold)
๐ Secure SSH/SFTP support with private key + passphrase
๐งญ Tree navigation view for directory structures
๐ File operations:
- Upload/Download
- Create/Rename/Delete
- Copy/Cut/Paste with progress notification
- Compress/Decompress (ZIP, TAR, etc.)
๐ Text and code file editing with encoding support
๐ท Preview for images, videos, and PDFs
๐ Search and live filtering
๐ Internationalization (20+ languages)
โจ๏ธ Keyboard shortcut support
๐งฑ Modular design with customization support
๐ฆ Installation
Install the NuGet package:
Install-Package G9BlazorComponent.FileManagementSystem
Or via .NET CLI:
dotnet add package G9BlazorComponent.FileManagementSystem
๐งช Basic Usage
Use the Component
@page "/"
@using G9BlazorComponent.FileManagementSystem
<G9FileManagement @ref="_fileManager" Language="G9ECultures.en" />
@code {
private G9FileManagement _fileManager = null!;
protected override void OnInitialized()
{
if (_fileService == null)
{
var privatePath = G9Assembly.InputOutputTools.GetExecutableDirectory();
_fileService = new G9CFileService("PublicFileManagementSystem", privatePath);
}
}
}
๐ SSH/SFTP Access
You can open a remote SSH/SFTP area (automatically) with the following method:
await _fileManager.OpenShhSftpAreaPath(new SshConfig
{
UserName = "root",
HostName = "127.0.0.1",
Port = 9000,
PrivateKeyContent = "-----BEGIN OPENSSH PRIVATE KEY-----\n...",
PassPhrase = "your-passphrase",
ConnectionTimeoutSeconds = 60,
OperationTimeoutSeconds = 300
}, "/home", newTab: true, isShhMode: true);
Supports interactive terminal integration via Xterm
.
๐ก Keyboard Shortcuts
Shortcut | Action |
---|---|
Ctrl + C | Copy |
Ctrl + X | Cut |
Ctrl + V | Paste |
Ctrl + A | Select All |
Backspace | Go to parent dir |
Escape | Unselect all |
๐ Localization
Set your preferred culture via the Language
parameter:
<G9FileManagement Language="G9ECultures.en" />
Custom dictionaries are also supported and can be extended from the G9Dictionaries
folder.
Supported cultures are as follows:
Supported Cultures
The following cultures are supported:
- en (English)
- zh (Chinese - Mandarin)
- es (Spanish)
- hi (Hindi)
- ar (Arabic)
- fr (French)
- pt (Portuguese)
- ru (Russian)
- de (German)
- ja (Japanese)
- bn (Bengali)
- pa (Punjabi)
- jv (Javanese)
- ko (Korean)
- vi (Vietnamese)
- ta (Tamil)
- tr (Turkish)
- it (Italian)
- fa (Persian)
- th (Thai)
To add additional languages, update the {LibraryName}.LanguageDictionaryConfig.json
file located in the /G9Dictionaries
folder. Then, include translations and word definitions for the new language in the {LibraryName}.LanguageDictionary.json
file.
๐ File Operations API
All main file operations are available:
CreateFile()
CreateFolder()
Rename()
DeleteItem()
UploadFile()
DownloadFile()
Compress()
/Decompress()
EditTextFile()
Additionally, all operations provide full feedback via popup modals and toast notifications.
๐งฉ Integration Notes
- Works with both Blazor Server and Blazor WebAssembly
- Can be extended with other G9 components (e.g., Modals, Input Forms)
- Full TypeScript/JavaScript interop is used for terminal, key bindings, and event handling
๐ก Security
- Secure file management via private paths
- Full support for secure SSH key-based access
- Passphrase-protected keys supported (ED25519, RSA)
๐ฌ Feedback and Contribution
Feel free to contribute or report issues on the GitHub repository. For questions, reach out to the author or open a discussion.
๐ License
Licensed under MIT.
Built with โค๏ธ for advanced file management in modern Blazor apps.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | 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 was computed. 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. |
-
net9.0
- G9AssemblyManagement (>= 1.4.5.25)
- G9BlazorComponent.Modals (>= 1.0.1.15)
- G9BlazorComponent.MonacoEditor (>= 1.0.0.2)
- G9CompressHelper (>= 1.0.0.3)
- Microsoft.AspNetCore.Components.Web (>= 9.0.5)
- Microsoft.AspNetCore.Components.WebAssembly (>= 9.0.5)
- Microsoft.AspNetCore.Mvc.Core (>= 2.3.0)
- SixLabors.ImageSharp (>= 3.1.9)
- SSH.NET (>= 2025.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.