重命名文件夹 - 不应该在丢失的文件夹上退出

时间:2017-11-23 07:11:21

标签: c# rename

我想用C#重命名目录中的文件夹,我写下代码:

for (int i = 0; i < datagridview.Rows.Count; i++)
{
    System.IO.Directory.Move(@"E:\scan\" + datagridview.Rows[i].Cells[0].Value, @"E:\scan\" + datagridview.Rows[i].Cells[1].Value);
}

单元格0是数字,单元格1是名称 我想用名称替换号码

如果文件夹在datagridview中存在相同的数字,则ok,否则如果不存在(number)则发生异常 我想如果不存在datagridview中具有相同编号的目录中的文件夹,则继续结束。

2 个答案:

答案 0 :(得分:0)

您正在寻找Directory.Exists(string) method

此外,为简洁起见,您可能希望导入System.IO命名空间。请参阅using directive

for (int i = 0; i < datagridview.Rows.Count; i++)
{
    var sourceFolder = @"E:\scan\" + datagridview.Rows[i].Cells[0].Value;
    var destinationFoler = @"E:\scan\" + datagridview.Rows[i].Cells[1].Value;
    if (Directory.Exists(sourceFolder))
    {
        Directory.Move(sourceFolder, destinationFolder);
    }
    else
    {
        // Warn the user. E.g.
        // MessageBox.Display("Directory not found.");
    }
}

答案 1 :(得分:0)

检查目录是否存在System.IO.Directory.Exists(directoryPath)。 在您的情况下,代码将是:

for (int i = 0; i < datagridview.Rows.Count; i++)
{
    if (System.IO.Directory.Exists(@"E:\scan\" + datagridview.Rows[i].Cells[0].Value))
    {
        System.IO.Directory.Move(@"E:\scan\" + datagridview.Rows[i].Cells[0].Value, @"E:\scan\" + datagridview.Rows[i].Cells[1].Value);
    }
    else
    {
        break;
    }
}