İşte cevabı almam: Kopyalar, klasör içeriğini taşımaz. Hedef mevcut değilse kodun okunması daha nettir. Teknik olarak, var olmayan bir dosya için bir fileinfo oluşturacaksınız bir DateWimeTime DateTime.Min olacak kopya olurdu ama okunabilirlik biraz kısa düşüyor. Umarım bu test edilmiş kod birisine yardım eder.
** DÜZENLEME: Kaynağımı daha esnek olacak şekilde güncelledim. Bu konuya dayandığından güncellemeyi buraya gönderdim. Maske altdizileri kullanıldığında ise alt klasörü eşleşen dosyalar içermiyorsa. Kesinlikle daha sağlam bir hata işleyicisi geleceğiniz için. :)
public void CopyFolderContents(string sourceFolder, string destinationFolder)
{
CopyFolderContents(sourceFolder, destinationFolder, "*.*", false, false);
}
public void CopyFolderContents(string sourceFolder, string destinationFolder, string mask)
{
CopyFolderContents(sourceFolder, destinationFolder, mask, false, false);
}
public void CopyFolderContents(string sourceFolder, string destinationFolder, string mask, Boolean createFolders, Boolean recurseFolders)
{
try
{
if (!sourceFolder.EndsWith(@"\")){ sourceFolder += @"\"; }
if (!destinationFolder.EndsWith(@"\")){ destinationFolder += @"\"; }
var exDir = sourceFolder;
var dir = new DirectoryInfo(exDir);
SearchOption so = (recurseFolders ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly);
foreach (string sourceFile in Directory.GetFiles(dir.ToString(), mask, so))
{
FileInfo srcFile = new FileInfo(sourceFile);
string srcFileName = srcFile.Name;
// Create a destination that matches the source structure
FileInfo destFile = new FileInfo(destinationFolder + srcFile.FullName.Replace(sourceFolder, ""));
if (!Directory.Exists(destFile.DirectoryName) && createFolders)
{
Directory.CreateDirectory(destFile.DirectoryName);
}
if (srcFile.LastWriteTime > destFile.LastWriteTime || !destFile.Exists)
{
File.Copy(srcFile.FullName, destFile.FullName, true);
}
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message + Environment.NewLine + Environment.NewLine + ex.StackTrace);
}
}
Bu pencere veya web yaklaşımı nedir? – user1102001
@ user1102001 windows –
Bir toplu iş dosyasıyla bunu daha kolay bulabilirsin, xcopy komutunun bu kadar basit olduğunu düşünüyorum – JMK