经过大量的搜索和广泛的观察,我有一个毫无疑问是愚蠢的问题,但我只是错过了一些简单的事情。我刚刚发布了我的第一个网站,显然不得不做一些改动。我正在使用一个编写器类,在它只是写在我的计算机上的路径之前,但现在显然不是一个选项,我正在尝试的是:
using (StreamWriter writer = new StreamWriter(@"~\Files\test.txt"))
我只想将此内容写入项目中的Files文件夹。语法是什么?我也在使用dotnetzip并尝试不同的语法时遇到同样的问题:
zip.AddFile("Files/test.txt");
这样做的方法是什么?谢谢!
答案 0 :(得分: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("/"). What is the difference?。
答案 1 :(得分:1)
非常感谢Ic。为了回应。我忽略了这是一个asp.net项目,但我发现asp.net中的等价物是:
Server.MapPath(".")
有很多选择而不是。但那就是我在寻找的东西。另外,我试图在课堂上设置这个并且没有用,因为我需要这样做:
HttpContext.Current.Server.MapPath(".")
谢谢!