使用 C# GetPrivateProfileString() 函数读取 INI 文件时,可能会出现“对路径'\192.168.11.248\软件\勿删\高功率效率测试值\测试值.ini'的访问被拒绝”的错误。这通常是由于当前用户没有访问该文件的权限。

以下是解决此错误的几种方法:

  1. 确认用户权限: 检查当前用户是否拥有访问该文件的权限。如果没有,请联系管理员授权。
  2. 使用管理员权限: 尝试以管理员身份运行程序。
  3. 修改文件路径: 将文件复制到当前用户有权限访问的目录下,并修改代码中的文件路径。
  4. 网络共享权限: 如果文件位于网络共享文件夹中,确保您拥有正确的网络访问权限。尝试使用 IP 地址代替网络共享文件夹的名称。

以下是一些代码示例,展示了如何读取 INI 文件:

public string GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, string lpFileName)
{
    string path = Path.GetFullPath(lpFileName);
    if (!File.Exists(path))
    {
        return lpDefault;
    }
    string value = lpDefault;
    try
    {
        using (StreamReader sr = new StreamReader(path, Encoding.Default))
        {
            string line;
            while ((line = sr.ReadLine()) != null)
            {
                if (line.StartsWith(';') || line.StartsWith('#'))
                {
                    continue;
                }
                if (line.StartsWith('[') && line.EndsWith(']'))
                {
                    string section = line.Substring(1, line.Length - 2);
                    if (section.Equals(lpAppName, StringComparison.OrdinalIgnoreCase))
                    {
                        while ((line = sr.ReadLine()) != null)
                        {
                            if (line.StartsWith(';') || line.StartsWith('#'))
                            {
                                continue;
                            }
                            int index = line.IndexOf('=');
                            if (index >= 0)
                            {
                                string key = line.Substring(0, index).Trim();
                                string val = line.Substring(index + 1).Trim();
                                if (key.Equals(lpKeyName, StringComparison.OrdinalIgnoreCase))
                                {
                                    value = val;
                                    break;
                                }
                            }
                        }
                        break;
                    }
                }
            }
        }
    }
    catch (Exception ex)
    {
        value = lpDefault;
    }
    return value;
}

希望这些方法能帮您解决问题。

C# GetPrivateProfileString() 函数访问拒绝错误解决方法

原文地址: https://www.cveoy.top/t/topic/mkTn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录