【问题标题】:File access denied in deployment部署中拒绝文件访问
【发布时间】:2015-04-04 05:00:57
【问题描述】:

我在下面的 C# 中为我的单线程应用程序创建了一个简单的 Logging 类。它有 3 个不言自明的公共方法(Clear()、Log() 和 Show())。当我在开发模式下运行程序时,它按预期工作。但是,当我部署和安装程序时,第一次调用 Log() 时出现以下错误。

System.UnauthorizedAccessException: 
Access to the path 'C:\Program Files (x86)\programDir\log.txt' is denied.

我有什么遗漏吗?我不确定如何调试,因为它在开发模式下工作正常。

public static class Logger
{

    private static string FilePath
    {
        get
        {
            return Path.Combine(Directory.GetCurrentDirectory(), "log.txt");
        }
    }

    public static void Clear()
    {
        if (File.Exists(FilePath))
        {
            File.Delete(FilePath);
        }
    }

    public static void Log(string sLine)
    {
        File.AppendAllLines(FilePath, new string[] { sLine });
    }

    public static void Show()
    {
        if (File.Exists(FilePath))
        {
            Process.Start(FilePath);
        }
    }

}

【问题讨论】:

    标签: .net logging file-io access-denied


    【解决方案1】:

    对程序文件目录的写入权限需要特殊权限,最佳做法是使用应用程序数据文件夹来存储应用程序创建的文件。

    file write permission issue under "Program Files" folder

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-07
      • 2018-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多