我正在为一个班级做一个项目.我要做的是将解析的指令导出到文件.Microsoft有这个例子,它解释了如何写入文件:
// Compose a string that consists of three lines.
string lines = "First line.\r\nSecond line.\r\nThird line.";
// Write the string to a file.
System.IO.StreamWriter file = new System.IO.StreamWriter("c:\\test.txt");
file.WriteLine(lines);
file.Close();
Run Code Online (Sandbox Code Playgroud)
我对那部分很好,但有没有办法将文件写入当前项目的环境/位置?我想这样做,而不是硬编码特定的路径(即"C:\\test.txt").
eva*_*nal 20
是的,只需使用相对路径.如果你使用@".\test.txt"(顺便说一下,我只是说我正在做一个字符串文字,它不需要转义字符,所以你也可以这样做".\\test.txt",它会写到同一个地方)它会将文件写入当前工作目录在大多数情况下,是包含您的程序的文件夹.
您可以使用Assembly.GetExecutingAssembly().Location获取主程序集(.exe)的路径.请注意,如果该路径位于受保护的文件夹中(例如Program Files),除非用户是管理员,否则您将无法在那里写入 - 不要依赖于此.
这是示例代码:
string path = System.Reflection.Assembly.GetExecutingAssembly().Location;
string fileName = Path.Combine(path, "test.txt");
Run Code Online (Sandbox Code Playgroud)
此问题/答案显示如何获取用户的配置文件文件夹,您将拥有写入权限.或者,您可以使用用户的My Documents文件夹来保存文件 - 再次,您可以保证可以访问它.您可以通过致电获得该路径
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Run Code Online (Sandbox Code Playgroud)