有人可以建议我如何将文件保存到Path.Combine
目录中吗?
请在下面找到我的一些代码。
创建目录:
string wholesalePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), mainFolder, wholesaleFolder);
Directory.CreateDirectory(wholesalePath);
我还指定了一个应该使用的文件名。
string fileName = "xmltest.xml";
然后我重新创建了一个" wholesalePath"包括文件名:
wholesalePath = Path.Combine(wholesalePath, fileName);
执行的几行简单代码:
XmlDocument doc = new XmlDocument();
string oneLine = "some text";
doc.Load(new StringReader(oneLine));
doc.Save(fileName);
Console.WriteLine(doc);
我遇到的问题是,当我使用doc.Save(fileName)
时,我在VisualStudio项目目录中获取文件,这是错误的目录。
然而,当我使用doc.Save(wholesalePath)
时,应该创建文件" xmltest.xml"实际上是在" wholesalePath"。
我会很感激任何建议。
答案 0 :(得分:0)
如评论中所述,您需要在添加wholesalePath
之前使用fileName
创建目录。添加wholesalePath
后,您需要使用fileName
来保存文件。我测试了以下代码,它按预期工作:
void Main()
{
string mainFolder = "StackOverflow";
string wholesaleFolder = "Test";
string wholesalePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), mainFolder, wholesaleFolder);
Directory.CreateDirectory(wholesalePath);
string fileName = "xmltest.xml";
wholesalePath = Path.Combine(wholesalePath, fileName);
XmlDocument doc = new XmlDocument();
string oneLine = "<root></root>";
doc.Load(new StringReader(oneLine));
doc.Save(wholesalePath);
}
它在名为xmltest.xml
的桌面文件夹中创建名为StackOverflow\Test
的文件。
这会有效,但我建议为文件夹和文件路径创建单独的变量。这将使代码更清晰,因为每个变量只有一个目的,并且不太可能使这些错误。例如:
void Main()
{
string mainFolder = "StackOverflow";
string wholesaleFolder = "Test";
string fileName = "xmltest.xml";
string destinationFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), mainFolder, wholesaleFolder);
string destinationFilePath = Path.Combine(destinationFolder, fileName);
Directory.CreateDirectory(destinationFolder);
XmlDocument doc = new XmlDocument();
string oneLine = "<root></root>";
doc.Load(new StringReader(oneLine));
doc.Save(destinationFilePath);
}
答案 1 :(得分:0)
好人,
非常感谢您的反馈和快速翻身。正如您所提到的,我之前正在更改wholesalePath
的操作,如果实际创建的话。
void Main()
{
string mainFolder = "StackOverflow";
string wholesaleFolder = "Test";
string wholesalePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), mainFolder, wholesaleFolder);
wholesalePath = Path.Combine(wholesalePath, fileName);
Directory.CreateDirectory(wholesalePath);
string fileName = "xmltest.xml";
XmlDocument doc = new XmlDocument();
string oneLine = "<root></root>";
doc.Load(new StringReader(oneLine));
doc.Save(wholesalePath);
}
现在我已经将执行顺序更改为Directory.CreateDirectory(wholesalePath)
作为第一个,然后wholesalePath = Path.Combine(wholesalePath, fileName)
一切都像魅力一样。非常感谢你的踌躇。
非常感谢。