Wie kopiere ich ein Verzeichnis auf ein anderes Laufwerk in C#?Kopieren Sie ein Verzeichnis auf ein anderes Laufwerk
Antwort
können Sie diesen Code verwenden, um durchzuführen Ihre Operation:
public static void CopyAll(DirectoryInfo source, DirectoryInfo target)
{
// 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);
}
}
unten ist auch gut:
FileSystem.CopyDirectory(sourceDir, destDir);
FileSystem.CopyDirectory(sourceDir, destDir);
FileSystem.CopyDirectory
ist in einer VB-Namespace und Montage, aber das ist wahrscheinlich keine Rolle spielt.
Gewusst wie: Kopieren, Löschen und Verschieben von Dateien und Ordnern (C# -Programmierhandbuch)
http://msdn.microsoft.com/en-us/library/cc148994.aspx
C# Ordner kopieren Recursively
http://www.csharp411.com/c-copy-folder-recursively/
Das zeigt nicht, wie eine rekursive Kopie erstellt wird. –
@Matthew: Behoben. –
private String path;
public int copyAllContents(String destinationFolder, ProgressBar progressBar)
{
int countCopyFiles = 0;
if (!Directory.Exists(destinationFolder))
{ Directory.CreateDirectory(destinationFolder); }
String[] allFilesForCurrentFolder = Directory.GetFiles(path, "*.*", SearchOption.TopDirectoryOnly);
String[] subFoldersAllpath = Directory.GetDirectories(path);
for (int i = 0; i < allFilesForCurrentFolder.Length; i++)
{
try { File.Copy(allFilesForCurrentFolder[i], destinationFolder + "\\" + Path.GetFileName(allFilesForCurrentFolder[i])); countCopyFiles++; progressBar.Value++; }
catch (Exception ex) { Console.WriteLine(ex.Message.ToString()); }
}
if (subFoldersAllpath.Length == 0)
{ return allFilesForCurrentFolder.Length; };
for (int i = 0; i < subFoldersAllpath.Length; i++)
{
this.path = subFoldersAllpath[i];
String[] subFoldersAllpathLastFolder = subFoldersAllpath[i].Split('\\');
countCopyFiles += this.copyAllContents(destinationFolder + "\\" + subFoldersAllpathLastFolder[subFoldersAllpathLastFolder.Length - 1], progressBar);
}
return countCopyFiles;
}
Es ist viel einfacher für andere, Ihre Antwort zu lesen, wenn Sie Ihren Code richtig formatieren. Außerdem ist es am besten, Ihrem Code einen Kontext hinzuzufügen. Schreiben Sie darüber, warum Sie denken, dass dies eine gute Antwort ist oder was es anders macht als die anderen Antworten. – mdewitt
Hier ist eine Erweiterung, die .NET 4.0+
var source = new DirectoryInfo(@"C:\Test");
var destination = new DirectoryInfo(@"E:\Test");
source.CopyTo(destination);
Fügen Sie arbeiten in:
static public void CopyFolder(string sourceFolder, string destFolder)
{
if (!Directory.Exists(destFolder))
Directory.CreateDirectory(destFolder);
string[] files = Directory.GetFiles(sourceFolder);
foreach (string file in files)
{
string name = Path.GetFileName(file);
string dest = Path.Combine(destFolder, name);
File.Copy(file, dest);
}
string[] folders = Directory.GetDirectories(sourceFolder);
foreach (string folder in folders)
{
string name = Path.GetFileName(folder);
string dest = Path.Combine(destFolder, name);
CopyFolder(folder, dest);
}
}
Sie diese Funktion auch verwenden können, Diese Datei in Ihrem Projekt
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace System.IO
{
public static class DirectoryInfoExtensions
{
public static void CopyTo(this DirectoryInfo source, DirectoryInfo target)
{
if (!target.Exists)
target.Create();
foreach (var file in source.GetFiles())
file.CopyTo(Path.Combine(target.FullName, file.Name), true);
foreach (var subdir in source.GetDirectories())
subdir.CopyTo(target.CreateSubdirectory(subdir.Name));
}
}
}
Hier ist ein Ansatz, kopiert ein Verzeichnis rekursiv als async
Funktion:
public static async Task CopyDirectoryAsync(string sourceDirectory, string destinationDirectory)
{
if (!Directory.Exists(destinationDirectory))
Directory.CreateDirectory(destinationDirectory);
foreach (var file in Directory.GetFiles(sourceDirectory))
{
var name = Path.GetFileName(file);
var dest = Path.Combine(destinationDirectory, name);
await CopyFileAsync(file, dest);
}
foreach (var subdir in Directory.GetDirectories(sourceDirectory))
{
var name = Path.GetFileName(subdir);
var dest = Path.Combine(destinationDirectory, name);
await CopyDirectoryAsync(subdir, dest);
}
}
public static async Task CopyFileAsync(string sourceFile, string destinationFile)
{
using (var sourceStream = new FileStream(sourceFile, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, FileOptions.Asynchronous | FileOptions.SequentialScan))
using (var destinationStream = new FileStream(destinationFile, FileMode.CreateNew, FileAccess.Write, FileShare.None, 4096, FileOptions.Asynchronous | FileOptions.SequentialScan))
await sourceStream.CopyToAsync(destinationStream);
}
- 1. robocopy bat ausführen, um das gesamte Laufwerk auf ein anderes Laufwerk zu kopieren
- 2. Kopieren Sie ein ganzes Verzeichnis
- 3. Kopieren von Dateien aus einem Verzeichnis in ein anderes
- 4. Gulp Kopieren von Dateien von einem Verzeichnis in ein anderes
- 5. Hadoop ein Verzeichnis kopieren?
- 6. Objekt in ein anderes kopieren
- 7. Ansible: Kopieren eines Verzeichnisinhalts in ein anderes Verzeichnis
- 8. vb.net Kopieren der Datei in ein anderes Verzeichnis
- 9. Einmal in Eclipse gespeichert, Projekt in ein anderes Verzeichnis kopieren
- 10. So kopieren Sie ein Grafikobjekt in ein anderes
- 11. Wie kopieren wir ein ganzes Verzeichnis in ein anderes Verzeichnis in Maven?
- 12. Ein String-Array in ein anderes kopieren
- 13. So kopieren Sie eine Datei aus einem Verzeichnis in ein anderes Verzeichnis in Java
- 14. Kopieren Sie die Eigenschaftswerte auf ein anderes Objekt mit C#
- 15. So kopieren Sie ein Verzeichnis mit Ant
- 16. Kopieren Sie ein Verzeichnis mit NSIS.
- 17. Kopieren Sie ein ganzes Verzeichnis mit Phing
- 18. Kopieren Sie ein XML-Dokument in ein anderes mit DOM
- 19. So kopieren Sie ein Klassenobjekt in ein anderes Klassenobjekt
- 20. Verzeichnis mit Qt kopieren
- 21. Kopieren ein Objekt auf ein anderes Objekt mit spezifischer Bedingung
- 22. Inhalt eines Verzeichnisses in ein anderes kopieren
- 23. C# - ContextMenuStrip Elemente in ein anderes kopieren
- 24. UNIX: So suchen und kopieren Sie alle Dateien mit dem gleichen Namen in ein anderes Verzeichnis
- 25. git: stash in ein anderes Verzeichnis verschieben
- 26. Rekursiv kopieren Sie eine Reihe von Dateien von einem Verzeichnis in ein anderes in PowerShell
- 27. Dekomprimieren mehrere gz in ein anderes Verzeichnis
- 28. Kopieren von einem Register in ein anderes
- 29. So kopieren Sie ein Verzeichnis mit Kopiervorgang in Gradle
- 30. Kopieren Sie den Inhalt eines Div in ein anderes Div
lol, was? Tut mir leid, mich nicht über irgendjemanden lustig zu machen, dachte nur, dass diese Frage urkomisch ist, wie es gefragt wird :) – VoodooChild
Ich verstehe, dass die Frage beantwortet wurde, aber Sie sollten versuchen, die Qualität der Frage zu verbessern. Es ist nicht sehr gut geschrieben. –
Ich denke, wir brauchen einen neuen Grund zu schließen - "leicht zu finden, wenn das OP die Anstrengung macht" – Gishu