Dies ist, wie ich es in der Vergangenheit getan haben:
void CopyAppFiles(string SourcePath, string)
{
foreach (string dirPath in Directory.GetDirectories(SourcePath, "*", SearchOption.AllDirectories))
{
Directory.CreateDirectory(dirPath.Replace(SourcePath, DestinationPath));
}
foreach (string newPath in Directory.GetFiles(SourcePath, "*.*", SearchOption.AllDirectories))
{
File.Copy(newPath, newPath.Replace(SourcePath, DestinationPath), true);
}
}
Mit dem Fortschritt Sie so etwas wie
void CopyAppFiles(string SourcePath, string)
{
string[] dirs = Directory.GetDirectories(SourcePath, "*", SearchOption.AllDirectories);
string[] files = Directory.GetFiles(SourcePath, "*.*", SearchOption.AllDirectories)
int totalOperations = dirs.length + files.length;
for(int i = 0; i < dirs.length; i++)
{
Directory.CreateDirectory(dirs[i].Replace(SourcePath, DestinationPath));
ReportProgress(i, totalOperations);
}
for(int i = 0; i < files.length; i++)
{
File.Copy(files[i], files[i].Replace(SourcePath, DestinationPath), true);
ReportProgress(i + dirs.length, totalOperations);
}
}
void ReportProgress(int currentOperation, int totalOperations)
{
//TODO
}
funktioniert am besten mit kleinen Dateien
für alle Dateien und Verzeichnisse Dateien kopieren und das Dateisyste.copydirectory für Verzeichnisse erstellen? – BugFinder
Was macht es, wenn es "nicht funktioniert"? Gibt es einen Fehler? Tut es überhaupt nichts und setzt mit dem nächsten Code fort? –
Dies kann ein Berechtigungsproblem sein - brauchen Sie ** ** um von der Wurzel kopieren zu können? – Bassie