一,文件夹A下的文件夹下的文件,移到文件夹A下。
二,经常上贴吧什么的,有些图贴,会直接网页全部保存为,结果是一个html文件,和引用资源的文件夹,文件夹下有很多无用的文件,写了个方法,把图片另存为,其余都删掉。
代码。
namespace 文件夹内容放到上级 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { folderBrowserDialog1.ShowDialog(); this.textBox1.Text = folderBrowserDialog1.SelectedPath; } private void button2_Click(object sender, EventArgs e) { //得到所有的目录 var a = Directory.GetDirectories(this.textBox1.Text); for (int i = 0; i < a.Length; i++) { //得到目录下的文件 var b = Directory.GetFiles(a[i]); //移动文件到父级 for (int j = 0; j < b.Length; j++) { string filename = GetFileName(b[j].ToString()); System.IO.File.Move(b[j], this.textBox1.Text + "\\" + filename); } //删除该目录 Directory.Delete(a[i], true); } } private void button3_Click(object sender, EventArgs e) { //得到所有的文件 var a = Directory.GetFiles(this.textBox1.Text, "*.htm"); for (int i = 0; i < a.Length; i++) { int legth = a[i].Length; //文件夹的名称。 int extlength=4; if (a[i].IndexOf("html") > -1) { extlength = 5; } string dpath = a[i].Substring(0, legth - extlength)+"_files"; //得到文件夹下的所有图片 ArrayList allimg = new ArrayList(); var jpgs = Directory.GetFiles(dpath, "*.jpg"); for (int jpg = 0; jpg < jpgs.Length; jpg++) { long size = new FileInfo(jpgs[jpg]).Length; if (size > 10 * 1024) { allimg.Add(jpgs[jpg]); } } var gifs = Directory.GetFiles(dpath, "*.gif"); for (int gif = 0; gif < gifs.Length; gif++) { long size = new FileInfo(gifs[gif]).Length; if (size > 80 * 1024) { allimg.Add(gifs[gif]); } } var bmps = Directory.GetFiles(dpath, "*.bmp"); for (int bmp = 0; bmp < bmps.Length; bmp++) { long size = new FileInfo(bmps[bmp]).Length; if (size > 50 * 1024) { allimg.Add(bmps[bmp]); } } //创建文件夹 string newdpaht = a[i].Substring(0, legth - extlength); CreateFolder(newdpaht); //把图片放到这个文件夹里。 foreach (var c in allimg) { string filename = GetFileName(c.ToString()); File.Move(c.ToString(), newdpaht + "\\"+filename); } // 删除原HTML和文件夹 File.Delete(a[i]); Directory.Delete(dpath,true); } }/// <summary> /// 创建目录路径 /// </summary> /// <param name="folderPath">物理路径</param> public static void CreateFolder(string folderPath) { if (!System.IO.Directory.Exists(folderPath)) System.IO.Directory.CreateDirectory(folderPath); } public static string GetFileName( string filePath) { return filePath.Substring(filePath.LastIndexOf("\\") + 1, filePath.Length - filePath.LastIndexOf("\\") - 1); } } }