Не могу найти проблему в моем коде
Я пытаюсь написать программу, которая будет перечислять каталог и показывать файлы - подкаталоги и расширения файлов. Но где-то в моем коде у меня есть проблема. Я загружаю файлы и каталоги успешно, но когда я пытаюсь писать типы файлов, я не могу этого сделать
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++;
}