C#如何获得当前程序所在的目录

C#如何获得当前程序所在的目录 Application.StartupPath; Environment.SpecialFolder.ApplicationData Environment.SpecialFolder命名空间可以获取很多特定的路径目录。 Environment.SpecialFolder. ApplicationData CommonApplicationData CommonProgramFiles Cookies DesktopDirectory Favorites History InternetCache LocalApplicationData Personal ProgramFiles Programs Recent SendTo StartMenu Startup Templates System System.Web.HttpContext.Request.{获取服务器绝对路径和虚拟目录路径} System.AppDomain.CurrentDomain.BaseDirectory; 获取应用程序的当前工作目录。 string path = System.IO.Directory.GetCurrentDirectory(); Environment.CurrentDirectory 获取应用程序的当前工作目录。 System.IO.Directory.GetCurrentDirectory() AppDomain.CurrentDomain.BaseDirectory 这两个只能在WindowForm中使用; Application.StartupPath Application.ExecutablePath --获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。 Environment.CurrentDirectory --获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。 Application.ExecutablePath

如果您在 C# 中设置外部程序所在的目录,可能会遇到文件夹权限问题。如果您的程序需要在指定目录下创建、修改或删除文件,那么您需要确保当前用户对该目录具有足够的权限。 如果您在 C# 中启动的外部程序需要访问特定的目录,那么您也需要确保当前用户对该目录具有足够的权限。您可以使用 `System.IO.Directory` 类的 `GetAccessControl` 方法来获取指定目录的访问控制列表,然后使用 `System.Security.AccessControl.FileSystemAccessRule` 类来检查当前用户是否具有所需的访问权限。以下是一个示例代码: ```csharp string path = "D:\\external_program_directory"; DirectorySecurity security = Directory.GetAccessControl(path); WindowsIdentity identity = WindowsIdentity.GetCurrent(); WindowsPrincipal principal = new WindowsPrincipal(identity); AuthorizationRuleCollection rules = security.GetAccessRules(true, true, typeof(SecurityIdentifier)); foreach (AuthorizationRule rule in rules) { FileSystemAccessRule fsRule = rule as FileSystemAccessRule; if (fsRule != null && fsRule.IdentityReference.Equals(identity.User) && (fsRule.FileSystemRights & FileSystemRights.Modify) == FileSystemRights.Modify) { // 当前用户具有修改目录权限 ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = "external_program.exe"; startInfo.WorkingDirectory = path; Process.Start(startInfo); break; } } ``` 在上面的示例中,我们首先使用 `Directory.GetAccessControl` 方法获取指定目录的访问控制列表,然后使用 `WindowsIdentity.GetCurrent` 方法获取当前用户的标识,最后使用 `WindowsPrincipal` 类来检查当前用户是否具有所需的访问权限。如果当前用户具有修改目录权限,则启动外部程序,并设置其启动目录为指定的目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值