使用 WPF 尝试在用户下载中创建目录和子目录,但出现访问被拒绝错误

问题描述 投票:0回答:1

error message ss

 private void CreateDirectories( )
 {
     //define path for backupFolderDirectory
     string backupFolderDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "Downloads");
     try
     {
         // Check if BrowserBackup exists, if it does, delete it
         if (Directory.Exists(backupFolderDirectory))
         {
             Directory.Delete(backupFolderDirectory, true);
             MessageBox.Show($"Deleted existing backup folder.");
         }
         else
         {
             // Create browserbackup Directory in downloads
             Directory.CreateDirectory(backupFolderDirectory);
             MessageBox.Show($"Created backup folder.");

             // Define path for chrome directory
             string chromeDirectory = Path.Combine(backupFolderDirectory, "Chrome");
             // Create Chrome directory
             Directory.CreateDirectory(chromeDirectory);

             // Define path for Edge Directory
             string edgeDirectory = Path.Combine(backupFolderDirectory, "Edge");
             // Create Edge directory
             Directory.CreateDirectory(edgeDirectory);

             // Define path for firefox directory
             string firefoxDirectory = Path.Combine(backupFolderDirectory, "firefoxDirectory");
             // Create firefox Directory
             Directory.CreateDirectory(firefoxDirectory);

             MessageBox.Show($"Created Browser Directories.");
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show($"Error creating directories: {ex.Message}");
     }
 }



 private void BackupButton_Click(object sender, RoutedEventArgs e)
 {

     CreateDirectories();
 }

在我的工作工作站上没有这个问题。我现在尝试使用的帐户是管理员。

c# wpf permissions
1个回答
0
投票

如果您的应用程序未以管理员身份运行,您可以重新启动您的应用程序并请求管理员权限。

 public void AskForAdminPrivileges()
 {
   try
     {

     var appName= System.AppDomain.CurrentDomain.FriendlyName;
     //Define process which should start:
     ProcessStartInfo processInfo = new ProcessStartInfo();
     processInfo.FileName = appName;
     processInfo.UseShellExecute = true;
     processInfo.Verb = "runas";         

     Process.Start(processInfo );

     }
     catch (Exception exp)
     {
         MessageBox.Show(exp.Message);
     }
 }
© www.soinside.com 2019 - 2024. All rights reserved.