部署中拒绝文件访问

时间:2015-04-04 05:00:57

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

我在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);
        }
    }

}

1 个答案:

答案 0 :(得分:0)

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

file write permission issue under "Program Files" folder