rush
Robbiblubber.Util.FileStorageAdapters.ShellEine Shell für mehrere Dateisysteme: lokale Ordner, FTP/FTPS, SSH/SFTP und SharePoint Online als benannte Speicher einbinden und mit denselben Befehlen bearbeiten – interaktiv oder per Skript.
Robbiblubber.Util.NETWerkzeuge für konkrete Aufgaben in .NET: Fortschrittsanzeigen für die Konsole, ein gemeinsamer Dateizugriff auf lokale und entfernte Speicher und Textextraktion aus PDFs mit OCR. rush und PdfText CLI bringen die Bibliotheken auf die Kommandozeile.
Robbiblubber.Util.FileStorageAdapters.ShellEine Shell für mehrere Dateisysteme: lokale Ordner, FTP/FTPS, SSH/SFTP und SharePoint Online als benannte Speicher einbinden und mit denselben Befehlen bearbeiten – interaktiv oder per Skript.
Robbiblubber.Util.PdfText.CliPdfText auf der Kommandozeile: xpdf liest eine PDF-Datei und schreibt den extrahierten Text in eine Textdatei – mit OCR-Fallback für gescannte Seiten.
Die Bibliotheken sind als einzelne NuGet-Pakete verfügbar. Installiere die Bausteine, die dein Projekt braucht.
Fortschrittsbalken und animierte Spinner für Konsolenanwendungen – mit Statusmeldungen, Farben und anpassbarer Darstellung.
using Robbiblubber.Util.ConsoleToolkit;
ConsoleProgressBar bar = new() { BarSize = 30, Text = "Processing..." };
bar.Show();
for (int i = 1; i <= 100; i++)
{
await Task.Delay(25);
bar.Value = i;
}
bar.Text = "Done.";
bar.Finish();Das Beispiel erreicht 100 %, bevor Finish() die Anzeige abschließt.
dotnet add package Robbiblubber.Util.ConsoleToolkitEine gemeinsame API für Dateien und Verzeichnisse: lokal, auf FTP-/FTPS- und SSH-/SFTP-Servern oder in SharePoint Online. Kopieren und Verschieben funktionieren auch zwischen unterschiedlichen Adaptern.
using Robbiblubber.Util.FileStorageAdapters;
static async Task CopyReportAsync(IAdapter sourceAdapter, IAdapter targetAdapter)
{
IDirectory source = sourceAdapter.OpenDirectory("/documents");
IDirectory target = targetAdapter.OpenDirectory("/incoming");
IFile file = await source.GetFileAsync("report.pdf");
await file.CopyToAsync(target, "report.pdf", overwrite: true);
}Mit bereits initialisierten Adaptern und vorhandenen Verzeichnissen: dieselbe Übertragung für unterschiedliche Speicher.
dotnet add package Robbiblubber.Util.FileStorageAdaptersFTP und FTPS als Dateispeicher einbinden, einschließlich verschlüsselter Verbindungen über explizites oder implizites TLS.
using Robbiblubber.Util.FileStorageAdapters;
using Robbiblubber.Util.FileStorageAdapters.Ftp;
FtpAdapterOptions options = new() { Security = FtpSecurity.EXPLICIT_TLS };
using FtpAdapter adapter = new(
"ftp.example.org", 21, "username", "password", options);
IDirectory directory = adapter.OpenDirectory("/incoming");Beispiel für explizites TLS. Server, Zugangsdaten und vorhandenes Verzeichnis anpassen.
dotnet add package Robbiblubber.Util.FileStorageAdapters.FtpDas lokale Dateisystem über dieselben Schnittstellen wie entfernte Speicher verwenden – mit LfsAdapter für Dateien und Verzeichnisse auf dem Rechner.
using Robbiblubber.Util.FileStorageAdapters;
using Robbiblubber.Util.FileStorageAdapters.LocalFileSystem;
IDirectory directory = LfsAdapter.Open("C:/Data");
IFile file = await directory.GetFileAsync("report.pdf");
using Stream stream = await file.ReadAsync();C:/Data und report.pdf müssen vorhanden sein. Unter Linux beispielsweise /var/data verwenden.
dotnet add package Robbiblubber.Util.FileStorageAdapters.LocalFileSystemSharePoint-Online-Dokumentbibliotheken über Microsoft Graph wie einen Dateispeicher ansprechen – mit Dateien und Ordnern statt SharePoint-Listen.
using Robbiblubber.Util.FileStorageAdapters;
using Robbiblubber.Util.FileStorageAdapters.SharePoint;
SharePointTarget target = SharePointTarget.FromSiteUrl(
"https://tenant.sharepoint.com/sites/project", libraryName: "Documents");
using SharePointAdapter adapter = SharePointAdapter.CreateInteractive(
target, tenantId: "TENANT-ID", clientId: "APPLICATION-ID");
IDirectory directory = adapter.OpenDirectory("/reports");Benötigt eine konfigurierte Entra-App mit passenden Berechtigungen. IDs, Bibliotheksname und Ordner anpassen.
dotnet add package Robbiblubber.Util.FileStorageAdapters.SharePointZwei Zugriffswege in einem Paket: SshAdapter arbeitet mit entfernten POSIX-Shell-Befehlen, SftpAdapter verwendet das SFTP-Protokoll.
using Robbiblubber.Util.FileStorageAdapters;
using Robbiblubber.Util.FileStorageAdapters.Ssh;
SftpAdapterOptions options = new()
{
HostKeyFingerprint = "SHA256:replace-with-verified-fingerprint"
};
using SftpAdapter adapter = new(
"server.example.org", 22, "username", "password", options);
IDirectory directory = adapter.OpenDirectory("/srv/data");Zugangsdaten und Pfad ersetzen; den Fingerabdruck des Servers vorab verifizieren und eintragen.
dotnet add package Robbiblubber.Util.FileStorageAdapters.SshText aus digitalen und gescannten PDFs extrahieren: direkter Textzugriff mit PdfPig, OCR-Fallback mit Tesseract und strukturierte Ausgabe für Tabellen.
using Robbiblubber.Util.PdfText;
PdfTextExtractor.Options options = new() { Languages = "eng+deu" };
using PdfTextExtractor extractor = new(options);
PdfTextExtractor.Result result = await extractor.GetResultAsync("input.pdf");
await File.WriteAllTextAsync("output.txt", result.Text);Für dieses Beispiel werden englische und deutsche Tesseract-Sprachdaten benötigt; der Datenpfad ist über TessDataPath konfigurierbar.
dotnet add package Robbiblubber.Util.PdfTextDie .NET-Bibliotheken werden über NuGet verteilt. Tools und Bibliotheken bleiben ihren Suites und Collections zugeordnet.
Alle Projekte ansehen