我目前的项目存在问题。我正在开发一个wpf应用程序,其中有一个xml文件,需要在执行某些操作时进行更新。但是我在更新xml文件时遇到权限错误。这是我使用的代码。
public void createxml()
{
try
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
var outPutDirectory = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);
var error = System.IO.Path.Combine(outPutDirectory, "foldername/filename.xml");
string relsound = new Uri(error).LocalPath.Replace(@"\bin\Debug", "");
writer = XmlWriter.Create(relsound, settings);
writer.WriteStartDocument();
writer.WriteComment("This file is generated by the program.");
writer.WriteStartElement("Category");
writer.WriteAttributeString("Name", "QuickformsForm");
fill_subXML(o);
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
}
catch (Exception ae)
{
MessageBox.Show(ae.ToString());
}
}
/// <summary>
/// Create the XML file
/// </summary>
/// <param name="parm1"></param>
public void fill_subXML(Int16 param1)
{
try
{
DataSet subcat_SE = new DataSet();
db_op.Open();
subcat_SE = db_op.ExecuteDataSet(CommandType.Text, "SELECT query");
db_op.Close();
if (subcat_SE.Tables[0].Rows.Count > 0)
{
for (int k = 0; k < subcat_SE.Tables[0].Rows.Count; k++)
{
writer.WriteStartElement("Category");
writer.WriteAttributeString("ID", subcat_SE.Tables[0].Rows[k][0].ToString().Trim());
writer.WriteAttributeString("Name", subcat_SE.Tables[0].Rows[k][1].ToString().Trim());
writer.WriteAttributeString("Flag", "C");
DataSet dt_formmaster_SE = new DataSet();
db_op.Open();
dt_f1_SE = db_op.ExecuteDataSet(CommandType.Text, "select query");
db_op.Close();
if (dt_f1_SE .Tables[0].Rows.Count > 0)
{
for (int j = 0; j < dt_f1_SE .Tables[0].Rows.Count; j++)
{
writer.WriteStartElement("Form");
writer.WriteAttributeString("ID", dt_f1_SE .Tables[0].Rows[j][0].ToString().Trim());
writer.WriteAttributeString("Name", dt_f1_SE .Tables[0].Rows[j][1].ToString().Trim());
writer.WriteAttributeString("Flag", "F");
writer.WriteEndElement();
}
}
fill_subXML(Convert.ToInt16(subcat_SE.Tables[0].Rows[k][0].ToString().Trim()));
writer.WriteEndElement();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
当我通过右键单击文件并转到安全选项卡设置对此文件的完全访问权限时,我可以执行该操作。其他明智的我不能。我尝试使用代码设置它,但不幸的是我的代码都没有正常工作。在这种情况下,任何人都可以帮助我。我尝试了stackoverflow和其他网站的一些代码
问候,
Sivajith