我不确定这里发生了什么 - 我试图调试但是无法解释为什么没有任何内容写入我的datagridview。
有人有任何想法吗?
public partial class CleanPathResults : Form
{
public CleanPathResults()
{
InitializeComponent();
}
public void RenameFolder(string folderName)
{
string regPattern = (@"[~#&$!%+{}]+");
string replacement = "";
List<string> normal = new List<string>();
Regex regExPattern = new Regex(regPattern);
dataGridView1.Rows.Clear();
List<string> cleanDirNames = new List<string>();
try
{
if (regExPattern.IsMatch(folderName))
{
string cleanup = regExPattern.Replace(folderName, replacement);
System.IO.Directory.Move(folderName, cleanup);
DataGridViewRow grid = new DataGridViewRow();
grid.CreateCells(dataGridView1);
grid.Cells[0].Value = folderName;
grid.Cells[1].Value = cleanup;
dataGridView1.Rows.Add(grid);
folderName = cleanup;
cleanDirNames.Add(cleanup);
}
else
{
normal.Add(folderName);
}
}
catch(Exception e)
{
throw;
}
DirectoryInfo di = new DirectoryInfo(folderName);
DirectoryInfo[] diArr = di.GetDirectories();
List<string> subdirectories = new List<string>();
try
{
foreach (DirectoryInfo subdir in diArr)
{
subdirectories.Add(subdir.ToString());
}
}
catch(Exception e)
{
throw;
}
try
{
foreach (string folder in subdirectories)
{
string sF = folder;
RenameFolder(folderName + "\\" + sF);
}
}
catch(Exception e)
{
throw;
}
}
private void button1_Click_1(object sender, EventArgs e)
{
Application.Exit();
}
}
我没有遇到任何错误 - 应用程序执行它应该做的事情(在这种情况下,确保文件夹名称不包含正则表达式中定义的无效字符)...但是这只是输出问题没有在dgv上显示。
任何帮助都将不胜感激。
答案 0 :(得分:1)
可能与正则表达式不匹配...这样就不会创建任何行并将其添加到dataGridView1。
你调试了代码吗?尝试在regExPattern.IsMatch之后的if语句中插入断点。看看调试器是否停在那里。这样就可以断言正在创建一个新行。
如果确实如此,我会尽力帮助你。
答案 1 :(得分:0)