Не могу найти проблему в моем коде

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

class Program
{
    static void Main(string[] args)
    {
        int i;
        string dir, mask;
        Console.WriteLine("Enter file mask:");
        mask = Console.ReadLine();
        Console.WriteLine("Enter directory:");
        dir = Console.ReadLine();
        if (!Directory.Exists(dir))
        {
            Console.WriteLine("No such directory");
            Console.Read();
        }
        else
        {
            string[] files = Directory.GetFiles(dir, "*" + mask + "*", SearchOption.AllDirectories);
            string[] folders = Directory.GetDirectories(dir, "*", SearchOption.AllDirectories)            

            string[] files_types = new string[files.Length];
            int file_i, type_i;
            for (file_i = 0; file_i == files.Length;file_i++)
            {
                string curr_file = files[file_i];
                string f_type = "";

                {
                    for (type_i = 0; type_i == curr_file.Length; type_i++)
                    {
                        if (curr_file[type_i].ToString() == ".")
                        {
                            int dot_place;

                            for (dot_place = type_i; dot_place == curr_file.Length; dot_place++)
                            {
                                f_type += curr_file[dot_place].ToString();
                            }
                        }
                    }
                    files_types[file_i] = f_type;
                }
            }

            for (i=0;i==files.Length;i++)
            {
                Console.WriteLine("========================FILES=======================");
                Console.WriteLine(files[i]);
            }
            for (i = 0; i == folders.Length;i++)
            {
                Console.WriteLine("========================FOLDERS=======================");
                Console.WriteLine(files[i]);
            }
            for (i = 0; i == files_types.Length; i++)
            {
                Console.WriteLine("========================TYPES=======================");
                Console.WriteLine(files[i]);
            }
            Console.Read();
        }
    }
}

Я не могу понять где.

1 ответ

Просто взгляните на эту строку:

for (file_i = 0; file_i == files.Length; file_i++)
// --------------^^^^^^^^^^^^^^^^^^^^^^

В C# условие, которое я подчеркнул ^s - это условие продолжения, а не условие прерывания.

Вы, скорее всего, имели в виду:

for (file_i = 0; file_i < files.Length; file_i++)
// ---------------------^

Это означает, что все ваши for петли.


for (file_i = 0; file_i == files.Length; file_i++)
{
    // do stuff
}

в основном так же, как:

file_i = 0;
while (file_i == files.Length) // will likely never be entered
{
    // do stuff
    file_i++;
}
Другие вопросы по тегам