1

经过大量搜索和广泛研究,我有一个无疑是愚蠢的问题,但我只是错过了一些简单的东西。我刚刚发布了我的第一个网站,显然必须进行一些更改。我正在使用一个作家类,在它只是写入我的计算机上的路径之前,但这显然不是现在的选择,我正在尝试的是:

using (StreamWriter writer = new StreamWriter(@"~\Files\test.txt"))

我只想将此写入我项目中的 Files 文件夹。语法是什么?我也在使用 dotnetzip 并在尝试不同的语法时遇到同样的问题:

zip.AddFile("Files/test.txt");

这样做的方法是什么?谢谢!

4

2 回答 2

2

对于 Windows(桌面)应用程序,请执行以下操作:

Path.Combine(Application.StartupPath, "Files", "test.txt")

应用程序路径可在 中访问Application.StartupPath,您可以使用它Path.Combine来将路径的各个部分组合在一起。

对于 ASP.net,您需要Server.MapPath代替Application.StartupPath

Path.Combine(Server.MapPath("~", "Files", "test.txt")

当然,既然这都是硬编码的,你也应该能够简单地做

Server.MapPath("~/Files/test.txt")

根据您的需要,您可能需要使用.而不是~. 另请参见Server.MapPath(".")、Server.MapPath("~")、Server.MapPath(@"\")、Server.MapPath("/")。有什么不同?.

于 2013-01-21T06:18:09.437 回答
1

非常感谢 Ic。为响应。我没有提到这是一个 asp.net 项目,但我发现 asp.net 中的等价物是:

Server.MapPath(".")

有许多选项,而不是 . 但这就是我要找的。另外,我试图在课堂上进行设置,但没有成功,因为我需要这样做:

HttpContext.Current.Server.MapPath(".")

谢谢!

于 2013-01-21T06:47:25.513 回答