2015-07-21 2 views
-1

У меня есть этот код:C# Переместить файл из BOOL

bool containsNonAllowedCLEOFiles = directory.EnumerateFiles().Any(file => !allowedCLEOFiles.Contains(file.Name)); 

if (containsNonAllowedCLEOFiles == true) 
{ 
    DialogResult existsunallowedcleofiles = MessageBox.Show("Extraneous files found! Please remove them", "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); 
    if(existsunallowedcleofiles == DialogResult.OK) 
    { 
     //move files 
    } 
    return; 
} 

Если посторонние/недозволенных файлы существуют, я получаю это сообщение. Но я хочу переместить эти файлы в другой каталог, когда я нажимаю OK. Как мне это сделать? Я хочу переместить не все файлы, но только посторонние/не разрешенные.

P.S Я знаю, что должен использовать File.Move («файл», «каталог»); или что-то вроде этого, но я не знаю, как получить это имя файла .. и т.д.

+1

[Что случилось с другим вопросом на ту же тему?] (Http://stackoverflow.com/questions/31491959/how-to-move-extraneous-files-to-folder) – DGibbs

+0

Вы уже опубликовал такой же вопрос несколько дней назад и даже получил ответ. –

ответ

2

Попробуйте

foreach (var file in directory.EnumerateFiles().Where(file => !allowedCLEOFiles.Contains(file.Name)) { 
    File.Move(file.Name, destination); 
} 
+0

Спасибо. Оно работает :) –

-3

Вы можете использовать:

var filesMatchingPattern = System.IO.Directory.GetFiles(DIRECTORY, PATTERN); 
+0

@downvoter: причина ?? – Tigran

3

Ну это звучит, как вы должны сначала найти эти файлы, а затем проверить ли или нет какие-либо:

var invalidFiles = directory.EnumerateFiles() 
          .Where(file => !allowedCLEOFiles.Contains(file.Name)); 
          .ToList(); 
if (invalidFiles.Any()) 
{ 
    // ... Prompt user as before ... 
    foreach (var invalidFile in invalidFiles) 
    { 
     File.Move(...); 
    } 
} 
1

Как об этом:

var disallowedFiles = directory.EnumerateFiles().Where(file => allowedCLEOFiles.Contains(file.Name)).ToList(); 

if (disallowedFiles.Any()) 
{ 
    DialogResult existsunallowedcleofiles = MessageBox.Show("Extraneous files found! Please remove them", "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); 
    if(existsunallowedcleofiles == DialogResult.OK) 
    { 
     disallowedFiles.ForEach(file => File.Move(file.Name, "destination")); 
    } 
    return; 
} 
Смежные вопросы