rush
Robbiblubber.Util.FileStorageAdapters.ShellUn shell pour plusieurs systèmes de fichiers : connecter dossiers locaux, FTP/FTPS, SSH/SFTP et SharePoint Online sous des noms, puis utiliser les mêmes commandes en mode interactif ou par script.
Robbiblubber.Util.NETDes outils pour les tâches concrètes en .NET : indicateurs de progression en console, accès commun aux fichiers locaux et distants, et extraction de texte PDF avec OCR. rush et PdfText CLI rendent ces bibliothèques accessibles en ligne de commande.
Robbiblubber.Util.FileStorageAdapters.ShellUn shell pour plusieurs systèmes de fichiers : connecter dossiers locaux, FTP/FTPS, SSH/SFTP et SharePoint Online sous des noms, puis utiliser les mêmes commandes en mode interactif ou par script.
Robbiblubber.Util.PdfText.CliPdfText en ligne de commande : xpdf lit un PDF et écrit le texte extrait dans un fichier, avec OCR de secours pour les pages numérisées.
Les bibliothèques sont disponibles sous forme de paquets NuGet distincts. Installez les briques utiles à votre projet.
Barres de progression et indicateurs animés pour les applications console, avec messages, couleurs et présentation personnalisable.
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();L’exemple atteint 100 % avant que Finish() termine l’affichage.
dotnet add package Robbiblubber.Util.ConsoleToolkitUne API commune pour les fichiers et dossiers locaux, sur FTP/FTPS, SSH/SFTP ou dans SharePoint Online. La copie et le déplacement fonctionnent aussi entre adaptateurs.
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);
}Avec des adaptateurs initialisés et des dossiers existants : le même code de transfert pour différents stockages.
dotnet add package Robbiblubber.Util.FileStorageAdaptersUtiliser FTP et FTPS comme stockage de fichiers, avec chiffrement TLS explicite ou implicite.
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");Exemple avec TLS explicite. Adapter le serveur, les identifiants et le dossier existant.
dotnet add package Robbiblubber.Util.FileStorageAdapters.FtpUtiliser le système de fichiers local avec les mêmes interfaces que les stockages distants, grâce à LfsAdapter.
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 et report.pdf doivent exister. Sous Linux, utiliser par exemple /var/data.
dotnet add package Robbiblubber.Util.FileStorageAdapters.LocalFileSystemAccéder aux bibliothèques de documents SharePoint Online comme à un stockage de fichiers via Microsoft Graph, avec des fichiers et dossiers plutôt que des listes.
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");Nécessite une application Entra configurée avec les autorisations appropriées. Adapter les ID, la bibliothèque et le dossier.
dotnet add package Robbiblubber.Util.FileStorageAdapters.SharePointDeux modes d’accès dans un paquet : SshAdapter utilise des commandes shell POSIX distantes, SftpAdapter le protocole SFTP.
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");Remplacer les identifiants et le chemin ; vérifier au préalable l’empreinte du serveur et la renseigner.
dotnet add package Robbiblubber.Util.FileStorageAdapters.SshExtraire le texte des PDF numériques et numérisés : extraction directe avec PdfPig, OCR de secours avec Tesseract et sortie structurée pour les tableaux.
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);Cet exemple nécessite les données linguistiques Tesseract anglaises et allemandes ; TessDataPath permet de définir leur dossier.
dotnet add package Robbiblubber.Util.PdfTextLes bibliothèques .NET sont distribuées via NuGet. Les outils et bibliothèques restent regroupés dans leurs suites et collections.
Voir tous les projets