c# - 如何使用相对路径使用 StreamWriter 创建文件?

标签 c# wpf file-io prism

当我运行以下代码时,在 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/

相关文章:

c#内存性能和加速

c# - NHibernate session 管理和延迟加载

c# - 如何恢复与 WCF 的连接?

c# - 跨线程的 CollectionChanged 通知?

ios - 读取和写入同一文件

java - 以页为单位写入磁盘

c# - System.Web.HttpRequestValidationException 问题

WPF TextBox重新计算大小

c - Open() 输出不创建文件

c# - TCP 服务器/客户端连接问题 C#