exe无法写入安装文件夹中的XML文件
Exe can't write in a XML file in the installation folder
首先我必须明确我是Web 开发人员。但是面对一个问题,我不得不在 WPF 中创建一个 exe,因为它听起来很简单,而且存储在 XML file
中的小数据。
安装后问题就来了。我遵守了规则,但我的 WPF 无法写入 XML 文件。我看到这是权限,因为当我将所有文件夹安装放在 D 驱动器中时。我在 XML 文件中写入没有任何问题。
那么在任何客户端机器上安装后如何在 XML 文件中写入?我需要添加一些说明吗?
从Windows7开始,默认用户没有管理权限。所以不允许应用程序写入程序目录(c:\Programs\myApp),因为它们默认以用户权限执行。
应用程序数据应存储在用户目录中(例如 c:\user\fred\AppData\Local)。
您可以使用 Environment.SpecialFolder-Enumeration:
轻松获取目录
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
您无法在 windows 7+ 上保存到 Program Files。相反,您可以在 AppData 区域中创建一个文件夹。我用它来获取应用程序目录
public static string GetAppDataDir(string company, string appName)
{
string appDataDir = Environment.ExpandEnvironmentVariables( "%APPDATA%" );
string appDir = Path.Combine( appDataDir, company );
appDir = Path.Combine( appDir, appName );
if (!Directory.Exists(appDir))
Directory.Create(appDir);
return appDir;
}
首先我必须明确我是Web 开发人员。但是面对一个问题,我不得不在 WPF 中创建一个 exe,因为它听起来很简单,而且存储在 XML file
中的小数据。
安装后问题就来了。我遵守了规则,但我的 WPF 无法写入 XML 文件。我看到这是权限,因为当我将所有文件夹安装放在 D 驱动器中时。我在 XML 文件中写入没有任何问题。
那么在任何客户端机器上安装后如何在 XML 文件中写入?我需要添加一些说明吗?
从Windows7开始,默认用户没有管理权限。所以不允许应用程序写入程序目录(c:\Programs\myApp),因为它们默认以用户权限执行。 应用程序数据应存储在用户目录中(例如 c:\user\fred\AppData\Local)。
您可以使用 Environment.SpecialFolder-Enumeration:
轻松获取目录Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
您无法在 windows 7+ 上保存到 Program Files。相反,您可以在 AppData 区域中创建一个文件夹。我用它来获取应用程序目录
public static string GetAppDataDir(string company, string appName)
{
string appDataDir = Environment.ExpandEnvironmentVariables( "%APPDATA%" );
string appDir = Path.Combine( appDataDir, company );
appDir = Path.Combine( appDir, appName );
if (!Directory.Exists(appDir))
Directory.Create(appDir);
return appDir;
}