C# GetPrivateProfileString() 函数访问拒绝错误解决方法
使用 C# GetPrivateProfileString() 函数读取 INI 文件时,可能会出现“对路径'\192.168.11.248\软件\勿删\高功率效率测试值\测试值.ini'的访问被拒绝”的错误。这通常是由于当前用户没有访问该文件的权限。
以下是解决此错误的几种方法:
- 确认用户权限: 检查当前用户是否拥有访问该文件的权限。如果没有,请联系管理员授权。
- 使用管理员权限: 尝试以管理员身份运行程序。
- 修改文件路径: 将文件复制到当前用户有权限访问的目录下,并修改代码中的文件路径。
- 网络共享权限: 如果文件位于网络共享文件夹中,确保您拥有正确的网络访问权限。尝试使用 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;
}
希望这些方法能帮您解决问题。
原文地址: https://www.cveoy.top/t/topic/mkTn 著作权归作者所有。请勿转载和采集!