Ответы пользователя по тегу .NET
  • Как быстро обойти директории и получить файловое дерево?

    Protos
    @Protos
    Спрашивай - отвечу
    Используйте рекурсию.
    Правда быстрый код я писать не умею. Если у вас прав недостаточно, тогда ищите уязвимости windows.
    Из кода ниже вам будет интересна переменная List<string> filesanddirecoties;
    List<string> filesanddirecoties;
            DirectoryInfo[] files;
            void WalkDirectoryTree(string RootDirectory)
            {
                richTextBox1.Clear();
                DirectoryInfo root = new DirectoryInfo(RootDirectory);
                if (root.Exists)
                {
                    try
                    {
                        filesanddirecoties = new List<string>();
                        DirectoryInfo[] subDirs = root.GetDirectories();
                        AuthorizationRuleCollection ACLs = root.GetAccessControl().GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount));
                        string rules = "";
                        string[] Tree = root.FullName.Split('\\');
    
                        for (int i = 0; i < Tree.Length; i++)
                        {
                            filesanddirecoties.Add(Tree[i]);
                            string[] files = Directory.GetFiles(RootDirectory);
                            for (int j = 0; j < files.Length; j++)
                            {
                                if(files.Length!=0)
                                    filesanddirecoties.Add(files[j]);
                            }
                        }
                        //получаем права на папку
                        /*foreach (FileSystemAccessRule ACL in ACLs)
                        {
                            if (!IsSystemRules(ACL.IdentityReference.ToString()))
                            {
                                for (int i = 0; i < Tree.Length - 2; i++)
                                    rules += "\t";
                                rules += ACL.IdentityReference;
    
                                if (ACL.AccessControlType.ToString().Equals("Allow"))
                                {
                                    rules += ", разрешено: " + ACL.FileSystemRights + Environment.NewLine;
                                }
                                else if (ACL.AccessControlType.ToString().Equals("Deny"))
                                {
                                    rules += ", запрещено: " + ACL.FileSystemRights + Environment.NewLine;
                                }
                            }
                        }*/
                        for (int i = 0; i < Tree.Length - 2; i++)
                            richTextBox1.Text += "\t";
                        richTextBox1.Text += RootDirectory + Environment.NewLine + rules + Environment.NewLine;
    
                        if (Tree.Length < (Convert.ToInt32(textBox2.Text) + 1))
                            foreach (DirectoryInfo dirInfo in subDirs)
                                WalkDirectoryTree(dirInfo.FullName);
                    }
                    catch (UnauthorizedAccessException ee)
                    {
                        richTextBox1.Text += RootDirectory + Environment.NewLine;
                    }
                }
                else { richTextBox1.Text = "Папка не существует. Отмена операции."; }
            }
    Ответ написан
    Комментировать
  • Почему c# Webbrowser не реагирует на нажатия?

    Protos
    @Protos Автор вопроса
    Спрашивай - отвечу
    Заменил на Awesomium, потратил 15 мин.
    Ответ написан
    Комментировать
  • Какую тему для дипломной работы мне выбрать?

    Protos
    @Protos
    Спрашивай - отвечу
    Я бы предложил написать следующую программу (что-то типа Скотобазы):
    1е приложение: берем юзера VK, смотрим в каких группах он состоит (добавляем все группы в которых он поделился на странице у себя), выкачиваем все посты в группах и все фото, в метаданных постов и фото ищем упомянание aid=id нашего юзера, так получаем все его посты и фото в этих группах. Когда кто-то кого-то пробивает таким образом в виде standalone-прилождения на своем ПК (тратит ресурсы своего ПК, не ресурсы облака) результат записывается в общую базу в облаке, и так общими усилиями формируем базу.
    2е приложение: облако которое делает тоже что и 1е, но быстрее и на произвольной выборке юзеров.

    На подобии 1й программы есть межбанковское ПО для служб безопасности, которое показывает какой банк по какому "ФИО+дата" рождения искал человека, хочешь узнать зачем они его искали в этой самоформируемой базе, вот телефон безопасности этого банка - звони. При этом в базе нет никаких ПДн и др. данных, она просто содержит список "ФИО+дата" которые когда-либо кто проверял, а лишь комментарии к "ФИО+дата" работников СБ лежат в БД на стороне банка.
    Ответ написан