2015-07-22 3 views
-1

У меня есть этот код:C# 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; 
} 

Но это ошибка Еогеасп, как я могу это исправить?

P.S Я получаю эту ошибку:

foreach statement does not work with variables of type System.IO.FileInfo

+1

Сообщение об ошибке кажется мне совершенно понятным. Вы не можете использовать оператор foreach с 'FileInfo'. Что именно ты пытаешься сделать? – Default

+0

Для foreach требуется перечислимое значение, вы не передаете один экземпляр FileInfo. Что ты пытаешься сделать? Вы, кажется, упоминаете файлы, но, похоже, работаете только с одним файлом? – Lloyd

ответ

0

Если вы хотите, чтобы перебирать несколько элементов в каталоге, вам нужен DirectoryInfo, а не FileInfo, объект.

Предполагая, что вы хотите, чтобы получить все файлы в finfo «директории s, код должен быть таким:

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

finfo.Directory дает DirectoryInfo для finfo» директории s, и EnumerateFiles() позволяет перейти на его содержание в петле foreach.

Смежные вопросы