C# FileInfo move foreach

本文关键字:foreach move FileInfo | 更新日期: 2023-09-27 18:04:16

我有这样的代码:

FileInfo finfo = new FileInfo(Path.Combine(Directory.GetCurrentDirectory(), "backup", file.Key)); 
var fsize = finfo.Length;
if (fsize != file.Value)
{
    DialogResult modifiedcleofiles = MessageBox.Show("Oops! Modified files found! Click OK to move them!", "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); 
    if(modifiedcleofiles == DialogResult.OK)
    {
        foreach (FileInfo filemove in finfo)
        {
            finfo.MoveTo(Path.Combine(Directory.GetCurrentDirectory(), "backup", filemove.Name));
        }
     }
     return;
}

但这是错误的foreach,我怎么能解决它?

p。S我得到这个错误:

foreach语句不能处理System.IO.FileInfo类型的变量

C# FileInfo move foreach

如果您想迭代目录中的多个项目,则需要DirectoryInfo对象,而不是FileInfo对象。

假设您想获得finfo目录下的所有文件,代码应该是这样的:

foreach (FileInfo filemove in finfo.Directory.EnumerateFiles()) {
    ...
}

finfo.Directoryfinfo的目录提供了DirectoryInfo, EnumerateFiles()让您在foreach循环中浏览其内容。