繁体   English   中英

Winforms从datagridview中的文件夹加载文件,编辑名称并保存

[英]Winforms load files from folder in datagridview, edit name and save them

我必须重命名大约20.000个文件,但是我无法自动执行任何操作,因为我必须检查每个文件的内容并添加适当的名称。

但是,我计划构建一个胜利表格解决方案,以帮助我解决这一问题。

计划是:

  • 按钮选择文件夹(完成)
  • 将文件加载到DataGridView(完成)
  • 在gridview中内联编辑文件名(要做)
  • 退出/退出/移至另一项时,以新名称保存当前项(待办事项)

问题:

  • 如何在数据网格视图中内联编辑行?
  • 离开保存当前文件时应使用哪个事件处理程序?
  • 我实际上如何知道编辑了什么文件,以便可以使用新名称重命名/保存文件?

还有一件事。 我不会在一天内编辑20.000个项目,所以我在考虑是否可以向已编辑的文件中添加一个属性并将其标记为true或类似的东西,因此第二天我可以继续向左那些。

如果将DataGridView与设计的对象绑定,则可以使用selectedRow.DataBoundItem修改其属性。

现在,关于使用什么事件的问题,我建议使用RowEnter(进入EditMode)和RowLeave(验证/保存)。

同样,对于最后一个问题,如果您有自己的对象,则可以管理一个属性来执行此操作(就像在任何调用的setter上设置脏位一样)。

也许基于FileInfo lastModified,或匹配名称模式...

希望这可以帮助! :)

如果您有2个属性,并且在DataGrid中使用CellEndEdit和Cell BeginEdit操作。 我假设您具有以下示例的单元格中的完整文件路径。 Datagrid上有关于如何开始编辑的选项,但是默认情况下应启用它。

  public string FileOriginal { get; set; }
  public string  FileNew { get; set; }

  private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
    {
        FileNew = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
        File.Move(FileOriginal, FileNew);
    }

    private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
    {
        FileOriginal = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();

    }

这会将您的文件移动(重命名)为新名称。 采用旧路径并将其移至新的编辑路径。 如果您仅在该字段中输入文件名,那么我将在路径中添加另一列,然后将其组合为名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM