我有一个datagridview
ID Name
-----------
1 ABC
2 DEF
3 XYZ
目录中有3个文件
ABC.csv
DEF.csv
XYZ.csv
如何循环浏览文件名并根据其ID重命名,以便它们变为
1.csv
2.csv
3.csv
这是我的代码,但我不知道从datagridview中检索ID。任何帮助将非常感激!谢谢。 :)
DirectoryInfo d = new DirectoryInfo(sourceDirCSV);
FileInfo[] infos = d.GetFiles();
foreach (FileInfo f in infos)
{
try
{
File.Move(f.FullName, f.FullName.ToString().Replace(Path.GetFileNameWithoutExtension(sourceDirCSV), "???"));
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
答案 0 :(得分:1)
您可以尝试使用以下内容:
遍历DataGrid
的所有行:
foreach(DataGridViewRow row in DataGridView1.Rows)
{
string colVal=row.Cells(1).Value.ToString();
foreach (string currFilename in Directory.GetFiles(path, "*.csv").Select(Path.GetFileName))
{
//Path.GetFileNameWithoutExtension(fi.Name): this will get file name without extension
if(colVal.Equals(currFilename))
{
//rename file here
}
}
}
请根据您的要求进行更改,不要使用""。
希望这可以帮到你!
答案 1 :(得分:1)
我会做这样的事情:
string sourceDir = "D:\\Temp\\";
DirectoryInfo d = new DirectoryInfo(sourceDir);
string newFileName = "";
string oldFileName = "";
foreach (DataGridViewRow row in dataGridView1.Rows)
{
newFileName = sourceDir + row.Cells["ID"].Value.ToString() + ".csv";
oldFileName = sourceDir + row.Cells["Name"].Value.ToString() + ".csv";
if (File.Exists(oldFileName))
{
File.Move(oldFileName, newFileName);
}
}