Пример #1
0
        /// <summary>
        /// Creates directory if it doesn't exist. Returns short name of the directory and set access right if <paramref name="setAllUsersAccess"/> set to true.
        /// </summary>
        public static string CreateDirectory(string folder, bool setAllUsersAccess = true)
        {
            string res = folder.GetShortFileName();

            if (res.IsEmpty())
            {
                string parentFolder = folder.ExtractDirectory(false);
                CreateDirectory(parentFolder, setAllUsersAccess);
                WinApi.CreateDirectory(AddLongPathPrefix(folder), IntPtr.Zero);
                res = folder.GetShortFileName();
                if (res.IsEmpty())
                {
                    return(folder);
                }
                if (setAllUsersAccess)
                {
                    res.SetPermissions("USERS", FileSystemRights.FullControl, AccessControlType.Allow);
                }
            }
            else if (setAllUsersAccess)
            {
                res.SetPermissions("USERS", FileSystemRights.FullControl, AccessControlType.Allow);
            }
            return(res);
        }