gpt4 book ai didi

c# - 访问我刚创建的目录时出现 UnauthorizedAccessException

转载 作者:行者123 更新时间:2023-11-30 20:07:03 24 4
gpt4 key购买 nike

我在指定位置创建一个目录,然后尝试使用 StreamWriter 访问它,但它一直显示“访问被拒绝。”

有人知道会发生什么吗?

我的代码是这样的:

    if (!Directory.Exists(dirPath))
Directory.CreateDirectory(dirPath);
var a = HasWritePermissionOnDir(dirPath); <- This is only here to see if the value is true and it is.
tw = new StreamWriter(dirPath);

public static bool HasWritePermissionOnDir(string path)
{
var writeAllow = false;
var writeDeny = false;
var accessControlList = Directory.GetAccessControl(path);
if (accessControlList == null)
return false;
var accessRules = accessControlList.GetAccessRules(true, true, typeof(System.Security.Principal.SecurityIdentifier));
if (accessRules == null)
return false;

foreach (FileSystemAccessRule rule in accessRules)
{
if ((FileSystemRights.Write & rule.FileSystemRights) != FileSystemRights.Write) continue;

if (rule.AccessControlType == AccessControlType.Allow)
writeAllow = true;
else if (rule.AccessControlType == AccessControlType.Deny)
writeDeny = true;
}

return writeAllow && !writeDeny;
}

完整的堆栈跟踪:

在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 在 System.IO.FileStream.Init(字符串路径、FileMode 模式、FileAccess 访问、Int32 权限、Boolean useRights、FileShare 共享、Int32 bufferSize、FileOptions 选项、SECURITY_ATTRIBUTES secAttrs、String msgPath、Boolean bFromProxy、Boolean useLongPath) 在 System.IO.FileStream..ctor(字符串路径、FileMode 模式、FileAccess 访问、FileShare 共享、Int32 bufferSize、FileOptions 选项) 在 System.IO.StreamWriter.CreateFile(字符串路径, bool 追加) 在 System.IO.StreamWriter..ctor(字符串路径, bool 追加,编码编码,Int32 bufferSize) 在 System.IO.StreamWriter..ctor(字符串路径) 在 C:\Temp\AlertDemoSolution\AlertDemoSolution\AlertDemoSolution\MySqlUnitTest.cs 中的 AlertDemoSolution.MySqlUnitTest.TestMethod1():第 23 行

最佳答案

StreamWriter 写入文件。
您无法写入目录。

您可能想在目录中创建一个文件。

关于c# - 访问我刚创建的目录时出现 UnauthorizedAccessException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8974998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com