Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用datagridview列值重命名目录中的所有文件名_C#_Datagridview_File Rename - Fatal编程技术网

C# 使用datagridview列值重命名目录中的所有文件名

C# 使用datagridview列值重命名目录中的所有文件名,c#,datagridview,file-rename,C#,Datagridview,File Rename,我有一个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。任何帮助都将不胜感激!谢谢。:) 您可以尝试以下方法: 循环遍历数据网格的所有行: foreach

我有一个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。任何帮助都将不胜感激!谢谢。:)


您可以尝试以下方法:

循环遍历
数据网格的所有行

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
       }
    }
}
请根据您的要求进行更改,不要使用“原样”。


希望这对你有帮助

我将这样做:

        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);
            }                
        }

你在哪里调用这个代码段?@shree.pat18如果我没记错的话,我是通过点击按钮来调用的。按钮点击网格内部还是网格外部?@SHEKHARSHETE我相信网格外部。代码片段是我的按钮单击功能中唯一的代码
private void btn\u rename\u click(object sender,EventArgs e)
非常感谢,这很有帮助!:)虽然不完全有效,但这也有帮助!我了解到我需要通过datagrid而不是文件进行循环:D谢谢!
        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);
            }                
        }