复制文件:
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"); }