方法最后加return "";不过你这样写,就只能返回最后一个被删除文件的FullName
解决方案 »
- 怎么在内存中,将bmp转成jpg。
- 那位大侠知道?
- 请教一个treeview无刷新遍历以及获取选中值
- 在RichTextBox部分字体显示不同的颜色
- 如何处理WebService中方法的参数是实体类的情况?急~~~~~~
- 重写窗体出错,请高手解答,谢谢,100分,希望大家来好好的讨论一下.不多说了
- 修改treeview中节点text的方法?
- 已会单个账户的模拟登陆及后续操作,如何实现多账户的批量模拟登陆及后续操作?
- 找不到指定的对象导出程序-------OPC Client
- 因为我想用C#做BS结构的程序,请大家介绍一下。
- 在C#下如何实现MS SQL数据库压缩备份?
- 如何将FreeTextBox的内容存入数据库再显示到页面? 非常急!!!!!
return 语句,无条件退出方法,返回调用法
StringBuilder sb = new StringBuilder();
然后在你删除方法里加一个
public string deleteF(DirectoryInfo path, string filename,ref sb)
{
//把每个被删掉的文件名字(Name or FullName)与这个sb做个加法运算.
}
为什么你的思路一定要限制在返回呢?这样不就可以了么.当然你还可以再做加法运算的时候,为每个文件加个标志,以表明这是一个文件名的开始/结束
public List<string> delFileNames(string path, string filename)
{
if (!Directory.Exists(path))
{
MessageBox.Show("路径不存在!", "错误提示", MessageBoxButtons.OK,MessageBoxIcon.Warning);
return new List<string>();
}
FileInfo fi = new FileInfo(path + "\\" + filename);
if (fi.Exists)
{
fileNamesList.Add(fi.FullName);
fi.Delete();
}
DirectoryInfo di = new DirectoryInfo(path);
DirectoryInfo[] dis = di.GetDirectories();
if (dis.Length > 0)
{
for (int i = 0; i < dis.Length; i++)
{
delFileNames(dis[i].FullName, filename);
}
}
return fileNamesList;
}
调用举例fileNamesList = new List<string>();
fileNamesList = delFileNames(@"g:\test", "aa.txt");
foreach (string s in fileNamesList)
{
richTextBox2.Text += s + "\n";
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;namespace deletefile
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button2_Click(object sender, EventArgs e)
{
Application.Exit();
} private void button1_Click(object sender, EventArgs e)
{
if(textBox1.Text==string.Empty)
{
MessageBox.Show("路径不能为空", "提示", MessageBoxButtons.OK);
textBox1.Focus();
}
else if (textBox2.Text == string.Empty)
{
MessageBox.Show("标志文件不能为空,区分扩展名", "提示", MessageBoxButtons.OK);
textBox2.Focus();
}
else
{
fileNamesList = new List<string>();
fileNamesList = deleteF(new System.IO.DirectoryInfo(textBox1.Text), textBox2.Text);
foreach (string s in fileNamesList)
{
listBox1.Items.Add("已删:"+s);
}
}
}
private void textBox2_Enter(object sender, EventArgs e)
{
tishi.Text = "区分扩展名";
} private void textBox1_Enter(object sender, EventArgs e)
{
tishi.Text = "包括它的子目录";
} List<string> fileNamesList;
public List<string> deleteF(DirectoryInfo path, string filename)
{
if (System.IO.Directory.Exists(path.FullName))
{
if (path.GetFiles(filename).Length > 0)
{
System.IO.FileInfo[] f = path.GetFiles();
foreach (FileInfo a in f)
{
a.Delete();
fileNamesList.Add(a.FullName);
} }
DirectoryInfo[] paths = path.GetDirectories();
foreach (DirectoryInfo e in paths)
{
deleteF(e, filename);
}
return fileNamesList;
}
else
{
MessageBox.Show("路径不存在!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return new List<string>();
}
}
}
}
解决了。