当我运行以下代码时,在 c:\temp
中正确创建了一个 XML 文件:
XmlSerializer xs = new XmlSerializer(typeof(ObservableCollection<Models.Customer>));
using (StreamWriter wr = new StreamWriter("C:/temp/CustomerMock2.xml"))
{
xs.Serialize(wr, CustomerList);
}
但是,我实际上希望在项目下的子目录中创建它,但是当我这样做时:
using (StreamWriter wr = new StreamWriter("Data/CustomerMock2.xml"))
它就像写入它一样,但该文件从未出现在该目录中:
C:\Projects\Prototype12\CustomersModul\bin\Debug\Data
。
如何使用 StreamWriter 在我的项目中创建一个具有相对路径的文件?
最佳答案
依赖“当前目录”概念总是危险的,因此您需要一个起点。在 WinForms 项目中,您可以使用
获取 .EXE 的位置string exeFolder = System.IO.Path.GetDirectoryName(Application.ExecutablePath);
在 WPF 中会有类似的东西。
但是如果您在库中并且无权访问应用程序(或环境)对象,您应该考虑创建一个 BaseFolder 参数或属性以让主应用程序控制文件夹。
关于c# - 如何使用相对路径使用 StreamWriter 创建文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1198936/