复制文件:
protected void CopyAll(string olddirectory, string newdirectory, string dir)
{
DirectoryInfo info = new DirectoryInfo((dir.Length > 0) ? dir : olddirectory);
FileInfo[] files = info.GetFiles();
foreach (FileInfo info2 in files)
{
try
{
string destFileName = string.Format(@"{0}\{1}", (dir.Length > 0) ? dir.Replace(olddirectory, newdirectory) : newdirectory, info2.Name);
File.Copy(info2.FullName, destFileName);
FileInfo info3 = new FileInfo(destFileName);
info3.Attributes &= FileAttributes.ReadOnly;
byte[] bytes = File.ReadAllBytes(destFileName);
string str2 = Encoding.UTF8.GetString(bytes);
File.WriteAllText(destFileName, File.ReadAllText(destFileName, Encoding.Default), this.UTF8WithOutBom);
info3.Attributes |= FileAttributes.ReadOnly;
}
catch (Exception exception)
{
Console.WriteLine(exception.ToString());
}
}
if (info.GetDirectories().Length > 0)
{
for (int i = 0; i < info.GetDirectories().Length; i++)
{
string path = string.Format(@"{0}\{1}", (dir.Length > 0) ? dir.Replace(olddirectory, newdirectory) : newdirectory, info.GetDirectories()[i].Name);
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
this.CopyAll(olddirectory, newdirectory, info.GetDirectories()[i].FullName);
}
}
}
复制文件:
public void CopyDirectoryAndFiles(string olddirectory, string newdirectory)
{
DirectoryInfo info = new DirectoryInfo(newdirectory);
if (!info.Exists)
{
Directory.CreateDirectory(newdirectory);
}
this.CopyAll(olddirectory, newdirectory, "");
}
转换:
private void button1_Click(object sender, EventArgs e)
{
string text = this.textBox1.Text;
string newdirectory = this.textBox2.Text;
this.CopyDirectoryAndFiles(text, newdirectory);
MessageBox.Show("finished");
}