C#FileInfo移动foreach

时间:2015-07-22 14:37:57

标签: c# foreach move fileinfo

我有这段代码:

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类型的变量

1 个答案:

答案 0 :(得分:0)

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

假设您想要获取finfo目录中的所有文件,代码应如下所示:

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

finfo.DirectoryDirectoryInfo目录提供了finfoEnumerateFiles()允许您在foreach循环中查看其内容。< / p>