编写和加载C#项目中的文件?

时间:2013-01-21 06:16:12

标签: c# dotnetzip

经过大量的搜索和广泛的观察,我有一个毫无疑问是愚蠢的问题,但我只是错过了一些简单的事情。我刚刚发布了我的第一个网站,显然不得不做一些改动。我正在使用一个编写器类,在它只是写在我的计算机上的路径之前,但现在显然不是一个选项,我正在尝试的是:

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

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

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

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

2 个答案:

答案 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(".")

谢谢!