MrG*_*les 12 .net c# permissions file-permissions
我一直在将一个小的XML数据文件保存到外部驱动器,没有probs.但后来我尝试使用ApplicationData文件夹和其他文件,甚至C:\但没有运气.我收到一个错误,如"访问路径"C:\"拒绝".
只是为了确认,使用当前代码创建文件并将其读取到外部驱动器.我想这与安全性和权限有关,但我没有找到任何有用的东西.
如果你能指出我正确的方向,请提前感谢!
string fipData = @"F:\IL2\SIIYM\SIIYM Data.xml"; // external drive ok :-)
//string fipData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
//string fipData = @"C:\";
// if the XML data file doesn't exist, create it
bool dataFileExists = File.Exists(fipData);
if (dataFileExists)
{
// read the XML values
XDocument xData = XDocument.Load(fipData);
//...
}
else
{
// create & save the XML data file
XElement xLastPath = new XElement(el_lastPath, "");
XElement xLastCode = new XElement(el_lastCode, "");
XElement xRoot = new XElement(el_root);
xRoot.Add(xLastPath);
xRoot.Add(xLastCode);
XDocument newDataFile = new XDocument();
newDataFile.Add(xRoot);
try
{
newDataFile.Save(fipData);
}
catch (Exception ex)
{
MessageBox.Show("Data file unable to be created. System message:{0}".Put(Environment.NewLine + Environment.NewLine + ex.Message));
}
}
Run Code Online (Sandbox Code Playgroud)
blo*_*art 11
在对另一个答案的评论中,您说这是一个桌面应用程序,所以让我们分别处理每个位置.
在Vista及更高版本中,普通用户无权在系统驱动器的根目录(通常是C :)中创建文件.您可以通过在资源管理器中打开C:\,右键单击并尝试创建文件来自行查看 - 您应该获得UAC提示.因此,如果您要写入C:\,那么您的应用程序需要以管理员身份运行,通过适当的清单要求提升,或者在您想要写入该位置时启动单独的流程.
但应用程序数据,Environment.SpecialFolder.ApplicationData应该可以正常工作.如果输出的实际目录返回了你得到的内容?
| 归档时间: |
|
| 查看次数: |
68575 次 |
| 最近记录: |