我的目标是在用户配置文件目录中创建一个名为“Logs”的目录:让我们调用它 - C:\ Users \ UserX。 当我以UserX(也列为当前计算机的管理员)身份登录时,目录:C:\ Users \ UserX \ Logs已成功创建。 但是,当我以UserY或任何其他不是UserX并且未列为计算机管理员的用户身份登录时,我在创建提到的目录时收到权限异常(C:\ Users \ UserY \ Logs) 当UserY不是机器的管理员时,是否可以在路径C:\ Users \ UserY \ Logs中创建名为“Logs”的目录,如果是,如何通过代码(C#)创建它? 我当前的代码如下所示:
var rootFolder = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
var logsFolder = Path.Combine(rootFolder, "Logs");
if (!Directory.Exists(logsFolder))
{
var dirSec = new DirectorySecurity(rootFolder, AccessControlSections.All);
var procInfo = Process.GetCurrentProcess().StartInfo;
var domainName = string.IsNullOrEmpty(procInfo.Domain) ? Environment.UserDomainName : procInfo.Domain;
var userName = string.IsNullOrEmpty(procInfo.UserName) ? Environment.UserName : procInfo.UserName;
userName = string.Format("{0}\\{1}", domainName, userName);
dirSec.SetAccessRule(new FileSystemAccessRule(userName, FileSystemRights.CreateDirectories, AccessControlType.Allow));
dirSec.SetAuditRule(new FileSystemAuditRule(userName, FileSystemRights.CreateDirectories, AuditFlags.Failure));
Directory.CreateDirectory(logsFolder);
}
但是,如果“C:\ Users \ UserY”中不存在目录日志,并且UserY不是该计算机的管理员,则在创建所提到的目录时会收到权限异常,如我已经提到的那样。 UserY是否可以在“C:\ Users \ UserY”中创建这样的目录,如果可以,如何通过代码完成?