私のゲーム中に、マップを保存し、マップ内のタイルを xml ファイルに保存できます。
これまでのところ問題ありません。保存しようとすると問題が発生し、UnauthorizedAccessException
どういうわけかエラーが発生します。
フォルダーは、ゲームのインストール ディレクトリにあります。
インストールディレクトリ/データ/マップ/
確認しましたが、フォルダーは正しいアクセス許可 (書き込み、読み取り、実行) で正常に作成されます。
私は何か間違ったことをしていますか?
これが私のコードです:
private void CreateXMLOfMap()
{
List<Tile> tiles = mapContainer.GetTileList();
XmlDocument doc = new XmlDocument();
XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
doc.AppendChild(docNode);
XmlNode rootNode = doc.CreateElement("Map");
doc.AppendChild(rootNode);
XmlNode mapName = doc.CreateElement("Name");
mapName.AppendChild(doc.CreateTextNode("custom_map"));
rootNode.AppendChild(mapName);
XmlNode tilesNode = doc.CreateElement("Tiles");
rootNode.AppendChild(tilesNode);
for (int i = 0; i < tiles.Count; i++ )
{
XmlNode tileNode = doc.CreateElement("Tile");
tilesNode.AppendChild(tileNode);
XmlNode positionNode = doc.CreateElement("Position");
tileNode.AppendChild(positionNode);
XmlNode xNode = doc.CreateElement("X");
xNode.AppendChild(doc.CreateTextNode(tiles[i].GetTilePosition().X.ToString()));
positionNode.AppendChild(xNode);
XmlNode yNode = doc.CreateElement("Y");
yNode.AppendChild(doc.CreateTextNode(tiles[i].GetTilePosition().Y.ToString()));
positionNode.AppendChild(yNode);
XmlNode textureNode = doc.CreateElement("Texture");
textureNode.AppendChild(doc.CreateTextNode(tiles[i].GetTileInfo().Name.ToString()));
tileNode.AppendChild(textureNode);
XmlNode YFrameNode = doc.CreateElement("YFrame");
YFrameNode.AppendChild(doc.CreateTextNode(tiles[i].GetCurrentFrame().Y.ToString()));
tileNode.AppendChild(YFrameNode);
}
doc.Save(Constants.MAPS_DIRECTORY);
}