Une application console .NET 10 cross-platform pour analyser et optimiser l'espace disque avec des hard links intelligents.
Compare deux repertoires et identifie les fichiers identiques grace au calcul de checksums SHA256.
Cree automatiquement des hard links pour economiser l'espace disque sans duplication de donnees.
Mode rapide avec hash partiel pour les gros fichiers (>100MB) et cache persistant des hashes.
Fonctionne sur Windows, Linux et macOS avec support natif des APIs systeme.
Detecte et lie les fichiers presents uniquement dans un repertoire avec conservation de l'arborescence.
Testez vos operations avec --dry-run avant de les executer reellement.
Prerequis : .NET 10.0 ou superieur
# Cloner le repository
git clone https://github.com/votre-repo/HardlinkAnalyzer.git
cd HardlinkAnalyzer
# Compiler
dotnet build
# Executer
dotnet run -- analyze "/chemin/vers/A" "/chemin/vers/B"
# 1. Analyser deux repertoires
dotnet run -- analyze "/data/backup1" "/data/backup2"
# 2. Appliquer le plan de correction
dotnet run -- apply
# 3. Verifier les hard links crees
dotnet run -- verify "/data/backup1/fichier.txt" "/data/backup2/fichier.txt"
| Aspect | Hard Links | Copie traditionnelle |
|---|---|---|
| Espace disque | 0 octet supplementaire | Double l'espace utilise |
| Synchronisation | Automatique et instantanee | Manuelle ou par script |
| Performance | Creation quasi-instantanee | Limitee par I/O disque |
| Coherence | Garantie (meme inode) | Risque de desynchronisation |
| Maintenance | Une seule version | Multiples copies a maintenir |
L'application est organisee en modules specialises :
HardlinkAnalyzer/
+-- src/
| +-- Core/
| | +-- HardlinkAnalyzer.cs
| | +-- OptimizedHardlinkAnalyzer.cs
| | +-- UniqueFilesAnalyzer.cs
| +-- Services/
| | +-- HardlinkCorrector.cs
| | +-- FileHelper.cs
| | +-- FileFilter.cs
| +-- Cache/
| | +-- FileHashCache.cs
| | +-- OptimizedFileHashCache.cs
| +-- Config/
| | +-- PerformanceConfig.cs
| +-- Program.cs
+-- docs/
+-- static/