Поиск по этому блогу

пятница, 12 июля 2013 г.

Поиск файла по всем дискам

Поиск файла по всем дискам и директориям.



static void Main(string[] args)
        {
            foreach (DriveInfo drive in DriveInfo.GetDrives())
            {
                FindFiles(drive.RootDirectory.ToString(), "notepad++.exe");
            }
            Console.Out.WriteLine("Press any key");
            Console.ReadKey();
        }

        public static void FindInDir(DirectoryInfo dir, string pattern, bool recursive)
        {
            Task.Factory.StartNew(() =>
            {
                try
                {
                    foreach (FileInfo file in dir.GetFiles(pattern))
                    {
                        Console.Out.WriteLine(file.FullName);
                    }
                }
                catch (UnauthorizedAccessException)
                {
                }

                if (recursive)
                {
                    DirectoryInfo[] subdir = dir.GetDirectories();
                    int i;
                    int l = subdir.Length;
                    for (i = 1; i < l; i++)
                    {
                        try
                        {
                            FindInDir(subdir[i], pattern, recursive);
                        }
                        catch (UnauthorizedAccessException)
                        {
                            Console.Out.WriteLine("Отказано в доступе " + subdir[i].Name);
                        }
                    }
                }
            });
        }
        public static void FindFiles(string dir, string pattern)
        {
            Task.Factory.StartNew(() =>
            {
                FindInDir(new DirectoryInfo(dir), pattern, true);
            });
        }
    }

понедельник, 25 марта 2013 г.

Сравнение строк без учета регистра

Заметка.
Два способа сравнить строки без учета регистра букв.
Первый через регулярные выражения, а второй через свойство OrdinalIgnoreCase у IndexOf.


Regexp reg = new Regexp("что ищешь", RegexOptions.IgnoreCase)
Match n = new.Match(string)


if(stringToTest.IndexOf("myvalue", StringComparison.OrdinalIgnoreCase) >= 0)
{
   //строки совпали
}
else
{
   //строки не совпали
}