Проверка условия соответствия одному из элементов массива - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Пишу программу для сортировка файлов по определенным папкам и столкнулся с проблемой при проверке соответствия условия элементу массива. Вот пример кода с одним из условий.
 
public static string[] folders = { "Images", "Music", "Video", "Documents", "Archives", "Executable", "Download" };
public static string[] ImageTypes = { ".png", ".jpeg", ".bmp", ".gif", ".jpg" };
public static string[] MusicTypes = { ".mp3", ".wav", ".m4a", ".flac", ".pls", ".m3u" };
public static string[] VideoTypes = { ".mp4", ".avi", ".flv", ".wmv" };
public static string[] DocumentTypes = { ".docx", ".doc", ".pptx", ".ppt", ".xlsx", ".xls", ".vsdx", ".vsd", ".txt", ".pdf", };
public static string[] ArchiveTypes = { ".zip", ".rar" };
public static string[] ExecutableTypes = { ".exe", ".msi", ".bat", ".com" };
public static string currentFolderName = @"C:\test";
 
static void Main(string[] args)
{
    DirectoryInfo drInfo = new DirectoryInfo(currentFolderName);
    foreach (var f in folders)
    {
        if (drInfo.Exists)
        {
            drInfo.CreateSubdirectory(f);
        }
    }
    foreach (string entry in Directory.GetFiles(currentFolderName))
    {
        FileMove(new FileInfo(entry));
    }
}
public static void FileMove(FileSystemInfo fsi)
{
    FileInfo info = new FileInfo(fsi.FullName); 
    foreach (var type in DocumentTypes)
    {
        if (info.Extension == type)
        {
            info.MoveTo(currentFolderName + @"Documents" +info.Name);
        }
        else
        {
            if (info.Exists)
            {
                info.Delete();
            }
        }
    }
}
Проблема возникает в этой части:
foreach (var type in DocumentTypes)
    {
        if (info.Extension == type)
        {
            info.MoveTo(currentFolderName + @"Documents" +info.Name);
        }
        else
        {
            if (info.Exists)
            {
                info.Delete();
            }
        }
К примеру если попадается файл с расширением .txt то при проверке расширения на соответствие элементам из массива DocumentTypes, оператор проверив на соответствие с первым элементом который как видно не равен расширению, сразу переходит дальше и удаляет файл если в папке, в которую надо переместить есть файл с таким именем. Как сказать оператору что переходить дальше можно только после проверки соответствие всем элементам массива? Или подскажите как лучше реализовать проверку файла на существование в конечной папке?

Решение задачи: «Проверка условия соответствия одному из элементов массива»

textual
Листинг программы
 if (info.Exists)
            {
                info.Delete();
            }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.556 из 5
Похожие ответы