• Как сделать поиск на C# по директориям, с составлением списка файлов по указанным расширениям?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    Используйте Directory.GetFiles.
    string[] fileNames = Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories);

    Для нескольких расширений можете либо вызвать метод несколько раз, либо использовать Directory.EnumerateFiles вместе с LINQ.
    string[] fileNames = Directory.EnumerateFiles(path, "*.*", SearchOption.AllDirectories).Where(s => s.EndsWith(".txt") || s.EndsWith(".jpg"));
    Ответ написан
    2 комментария
  • Виртуализация для домашнего использования?

    azretik
    @azretik
    web, xen, vlan, cisco, wiki
    не посчитайте за трупоеда, что старые темы поднимаю, но как вижу подписчики еще в строю, может понадобится информация.

    полностью согласен с valdiks на счет XCP виртуализации. Ровно так же поступил и я сам. Для начала нужно подготовить платформу для всего этого дела. У меня 2 ssd жестких диска и 4шт обычных на отдельном контроллере. Есть желание сделать одну мышку для обоих систем, общий доступ к тем же файлам, да и вообще, чтобы было ощущение работы за одним компьютером. Операционные системы интересующие меня это Windows 7 и Mint. Для каждой системы желательно выделить отдельную видео карту, у меня для этого была припасена материнская плата с 2 PCIE16 и интегрированной в Intel процессор. Ставим именно Intel видеокарту в приоритете в BIOS, но не выключаем остальные. Для USB тоже желательно несколько отдельных контроллеров. Ровно так же поступил, поставил 2 дополнительных. Со звуком проще, можно вынимать из HDMI.

    Скачиваем и устанавливаем сперва XCP 1.6 на 1 ssd диск и указываю его в качестве основного жесткого диска для работы виртуализации. На контроллере для гипервизора оставляю этот ssd и жесткий диск на 1тб (под общие файлы для операционок). Дальше нужно расшарить для остальных систем 1тб жесткий диск в качестве корневого носителя. Для этого нужно доставить в centos пакеты с samba. Чтобы иметь возможность устаналивать дополнительные пакеты в систему нужно включить конфигурацию yum.
    nano /etc/yum.repos.d/CentOS-Base.repo
    nano /etc/yum.repos.d/CentOS-Vault.repo

    Сам я поставил MC, samba. Подключите, примонтируйте в fstab жесткий диск на 1тб и расшарьте его в sabma. После чего благополучно можно переходить к следующим манипуляциям. Для адекватной настройки ВМ в XCP я пользуюсь XenCenter, а для его адкватной работы нужно произвести некоторые манипуляции по настройке самого гипервизора.
    cd /opt/xensource/bin
      /etc/init.d/xapi stop
      cp -vp xapi xapi.original
      sed -i 's/1\.4\.90/6.0.99/g' xapi
      /etc/init.d/xapi start

    А так же нужно установить пакет отвечающий за трансфер ВМ. Если вдруг оно вам понадобится, для этого нужно скачать с сайта Citrix XenServer образ и примонтировав к системе установить пакет packages.transfer-vm/xenserver-transfer-vm-6.1.0*
    rpm -i xenserver-transfer-vm-6*

    На этом месте я создаю 2 ВМ, место под установку Mint я забираю на ssd для гипервизора, а вот для windows будет использован отдельный жесткий диск, на отдельном контроллере, так что созданный образ виртуального жесткого диска можно удалить и сперва пробросить наш контроллер в систему или пробросить все жесткие диски в win как блочные устройства.

    Подключения хардов без проброса контроллера, а в виде блочных устройств.
    Создаем папку для линков
    mkdir /srv/hdds
    Создаем SR
    xe sr-create name-label="HDDS" name-description="Блочные устройства" type=udev content-type=disk device-config:location=/srv/hdds

    ну и линкуем наши харды из системы
    ln -s /dev/md0 /srv/hdds/md0
    ну и теперь можно сходить в xencenter, пересканировать SR хранилище и подключить оттуда жесткие диски к нашей системе. Больше 4 жестких дисков таким методом не пробросить. Но можно снять ограничение и увеличить до 16.

    для проброса устрйоств в ВМ делаем lspci - для того чтобы узнать как называются у нас наши контроллеры.
    xe vm-param-set other-config:pci=0/0000:01:00.0,0/0000:01:00.1 uuid=d103a91d-5c38-844f-14d5-64b3c495eb08
    К примеру для проброса usb и видео контроллера. Но в моем случае, такой подход к Mint, а для win прокидываем еще и контроллер с жесткими дисками. По желанию можно прокинуть и звуковую карту. Теперь остается запустить наши новые ВМ и поставить на них операционные системы и драйверы. Для общих файлов в windows я расшариваю остальные жесткие диски. Для того чтобы "интегрировать" системы друг в друга, я подключаю в качестве папок с окружением и на win и на mint (рабочий стол, мои документы, моя музыка и прочее) папки с шары с жесткого диска из гипервизора. Побочный эффект - это link файлы из mint на рабочем столе для windows и ярлыки от win на столе mint. Ну и для удобства работы с системами, я рекомендую поставить программу проброса мыши и клавиатуры Synergy. Программа умеет перемещать и клавиатуру вслед за мышью, общий копипаст и даже перетаскивать файлы. Весьма удобно в нашем случае. Так же является кросс платформенной. Рекомендую подключить и пробрасывать управление с той системы которая будет главной. Ну и на будущее можно попытаться объединить для Nix все мониторы. Для этого хочу поставить на win xserver и подключить к xorg как дополнительный монитор.

    Заранее извиняюсь если кому-то написал непонятно и сумбурно. С утра в четверг хочется помочь людям, но качественно не можется =)

    Уоу, чуть не забыл =) автостарт операционных систем в гипервизоре.
    xe vm-param-set uuid=... other-config:auto_poweron=true

    ну не вручную же запускать нам операционки. По статьям на хабре можно заметить, что особого падения производительности нет,
    Ответ написан
    1 комментарий