Ho un programma C# autoupdater. Scaricherà un file rar che contiene i file modificati o nuovi per l'aggiornamento di alcuni software. Il file rar ha la sua struttura come la directory di base del software, ma contiene solo file o cartelle modificati o nuovi. C'è un modo semplice per "unire" questi file/cartelle alla directory di destinazione in modo che se il file/cartella esiste già verrà sostituito e se non verrà aggiunto o devo camminare manualmente attraverso ogni file/cartella e farlo da solo? Basta sperando c'è una bella funzione di merge poco che .NET ha :)C# unisce una directory con un'altra
risposta
L'esempio seguente mostra come copiare una directory e il suo contenuto.
public static void CopyAll(DirectoryInfo source, DirectoryInfo target) { if (source.FullName.ToLower() == target.FullName.ToLower()) { return; } // Check if the target directory exists, if not, create it. if (Directory.Exists(target.FullName) == false) { Directory.CreateDirectory(target.FullName); } // Copy each file into it's new directory. foreach (FileInfo fi in source.GetFiles()) { Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name); fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true); } // Copy each subdirectory using recursion. foreach (DirectoryInfo diSourceSubDir in source.GetDirectories()) { DirectoryInfo nextTargetSubDir = target.CreateSubdirectory(diSourceSubDir.Name); CopyAll(diSourceSubDir, nextTargetSubDir); } }
Il modo più semplice è quello di utilizzare il metodo FileSystem.MoveDirectory. Assicurati di aggiungere un riferimento al Microsoft.VisualBasic.dll
:
using Microsoft.VisualBasic.FileIO;
...
// Merge D:\SourceDir with D:\DestDir:
FileSystem.MoveDirectory("D:\\SourceDir", "D:\\DestDir", true /* Overwrite */);
Domanda è di unire la directory di origine con la directory di destinazione, MoveDirectory funzionerà in questo caso? Credo che MoveDirectory tenda a creare una nuova directory sulla destinazione e genererà un errore "Impossibile creare un file quando il file esiste già" se la directory esiste già. – kaushalparik27
Perché credi se potessi provare? Unirà le directory, quindi finirai con un singolo DestDir con tutti i contenuti combinati. – Yarik
- 1. plain C: apre una directory con fopen()
- 2. C++ - significato di una dichiarazione che unisce typedef e typename
- 3. Dottrina QueryBuilder cancellare con unisce
- 4. Apache Spark unisce esempio con Java
- 5. TFS2010 - Track Unisce
- 6. Come comprimere una directory con libbz2 in C++
- 7. Trova file con pattern corrispondenti in una directory C#?
- 8. Come creare una directory temporanea in C++?
- 9. Rails 3 - più database con unisce condizione
- 10. C# controllare se una directory è nascosta?
- 11. batch con determinate estensioni dalla più directory in una directory
- 12. Struttura di directory per una libreria C++
- 13. Come camminare una directory in C
- 14. Leggi autorizzazioni per una directory in C#
- 15. scorrendo una directory con Ant
- 16. Nascondere una directory con htaccess
- 17. unisce in Javascript
- 18. In C, come ottenere una directory specificata?
- 19. Come posso comprimere una directory con .NET?
- 20. NHibernate - Sinistra si unisce
- 21. Perché Linq si unisce in modo diverso
- 22. LINQ to NHibernate duplicati unisce
- 23. mysql - subquery e si unisce
- 24. Kohana 3.2 'anticipo' ORM unisce
- 25. FPDI unisce i file PDF, appare una linea strana
- 26. di query nidificate vs unisce
- 27. Rails si unisce tramite l'associazione
- 28. C++ Directory Ristrutturazione
- 29. Looping attraverso una directory
- 30. Blacklist una directory con Zend Opcache
chiedendo perché il tuo post non è mostrata a me quando scrivo uno io ?? –
@FelixK. Ho postato una risposta, poi ho pensato che non era quella giusta, cancellato, modificato mentre è stato eliminato e non cancellato. Una pratica comune, francamente. – GSerg
Ehi, grazie compagno –