예제 #1
0
        /// <summary>
        /// Информация о папке.
        /// </summary>
        /// <returns>Время создания дирректории, последнего изменения дирректории, последнего обращения к дирректории, уровень доступа к дирректории, размер дирректории, список файлов в дирректории.</returns>
        public string[] info()
        {
            if (SDirectory.Exists(dname) & dname.Length <= 260)//проверка на существование директории и корректности имени
            {
                try
                {
                    List <string> _Info = new List <string>();                                                                         //создание списка, куда будут заноситься сведения
                    _Info.Add(Convert.ToString("\nВремя создания дирректории: " + SDirectory.GetCreationTime(dname)));                 //время создания дирректории
                    _Info.Add(Convert.ToString("\nВремя последнего изменения дирректории: " + SDirectory.GetLastWriteTime(dname)));    //время последнего изменения дирректории
                    _Info.Add(Convert.ToString("\nВремя последнего обращения к дирректории: " + SDirectory.GetLastAccessTime(dname))); //время последнего обращения к дирректории
                    _Info.Add(Convert.ToString("\nУровень доступа к дирректории: " + SDirectory.GetAccessControl(dname)));             //уровень доступа к дирректории
                    _Info.Add(Convert.ToString("\nРазмер дирректории: " + SizeDirrecrory(dname)));                                     //размер дирректории
                    _Info.Add("\nСписок файлов в дирректории: ");                                                                      //список файлов в дирректории
                    string[] file = SDirectory.GetFiles(dname);                                                                        //создание массива строк для имен файлов

                    for (int i = 0; i < file.Length; i++)
                    {
                        _Info.Add("\n" + file[i]);                               //добавление в список имя файла
                    }
                    _Info.Add("\nКонец списка файлов.");                         //объявление о конце операции
                    return(_Info.ToArray());                                     //передача файла
                }
                catch (Exception e)                                              //обработка ислючений для получения информации
                {
                    LogForOperations("Получение информации о папке", e.Message); //запись в лог ошибки (если есть)
                    throw e;
                }
            }
            else
            {
                LogForOperations("Получение информации о файле", "папка не существует либо содержит в названии более 260 символов");//запись ошибки в лог, если условие проверки не выполняется
                return(null);
            }
        }
예제 #2
0
        /// <summary>
        /// Gets the DirectorySecurity object for the directory specified by the supplied path.
        /// </summary>
        /// <param name="path">The path to the directory to retrieve the security object for.</param>
        /// <returns>The security object for the directory specified. Null if the directory does not exist,
        /// an I/O Error occurred, the current operating system is not Windows 2000 or later,
        /// the path specified is read-only, or the process does not have permission to complete the operation.</returns>
        static public DirectorySecurity GetSecurityObject(string path)
        {
            // Check that a path is supplied.
            if (!string.IsNullOrEmpty(path))
            {
                // A path is supplied.

                // Check whether the directory exits.
                if (SystemDirectory.Exists(path))
                {
                    // The directory exists.
                    try
                    {
                        return(SystemDirectory.GetAccessControl(path));
                    }
                    catch (IOException)
                    {
                        // An I/O error occurred while opening the directory.
                        return(null);
                    }
                    catch (PlatformNotSupportedException)
                    {
                        // The current operating system is not Windows 2000 or later.
                        return(null);
                    }
                    catch (UnauthorizedAccessException)
                    {
                        // The path parameter specified a directory that is read-only.
                        // Or this operation is not supported on the current platform.
                        // Or the caller does not have the required permission.
                        return(null);
                    }
                }
                else
                {
                    // The directory does not exist.
                    return(null);
                }
            }
            else
            {
                // A path was not supplied.
                return(null);
            }
        }
예제 #3
0
 public DirectorySecurity GetAccessControl(AccessControlSections includeSections)
 {
     return(Directory.GetAccessControl(FullPath, includeSections));
 }
예제 #4
0
 public DirectorySecurity GetAccessControl()
 {
     return(Directory.GetAccessControl(FullPath, AccessControlSections.Access | AccessControlSections.Owner | AccessControlSections.Group));
 }
예제 #5
0
 public DirectorySecurity GetAccessControl()
 {
     return(Directory.GetAccessControl(FullPath));
 }
예제 #6
0
 public override DirectorySecurity GetAccessControl(string path, AccessControlSections includeSections)
 {
     return(Directory.GetAccessControl(path, includeSections));
 }
예제 #7
0
 public override DirectorySecurity GetAccessControl(string path)
 {
     return(Directory.GetAccessControl(path));
 }