如何访问和创建与c#中的程序相同的目录中的txt文件

时间:2014-02-28 19:18:49

标签: c# file directory

http://pastebin.com/DgpMx3Sx

目前我有这个,我需要找到一种方法来制作它,以便写出txt文件的目录,我希望它在与exe相同的位置创建它们并访问它们。

基本上我想改变这些行

string location = @"C:\Users\Ryan\Desktop\chaz\log.txt";
string location2 = @"C:\Users\Ryan\Desktop\chaz\loot.txt";

可以在计算机周围移动的东西,而不用担心它不起作用。

2 个答案:

答案 0 :(得分:1)

如果您将文件保存在与可执行文件相同的路径中,则可以使用以下命令获取目录:

string appPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

答案 1 :(得分:0)

通常你不会这样做,主要是因为安装路径可以在Program Files文件夹中找到,它需要修改管理级访问权限。您可能希望将其存储在Application Data文件夹中。这种方式是隐藏的,但通常可以通过所有用户访问。

你可以通过以下方式完成这样的壮举:

string path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string fullPath = Path.Combine(path, @"NameOfApplication");

使用前两行,您将始终拥有到应用程序的全局可访问位置的正确路径。

然后当您执行某些操作时,您只需将fullPath和您尝试使用FileStreamStreamWriter操纵的文件的名称合并。

如果结构正确,可以这么简单:

private static void WriteToLog(string file)
{
     string path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
      string fullPath = Path.Combine(path, @"NameOfApplication");

     // Validation Code should you need it.

     var log = Path.Combine(fullPath, file);
     using(StreamWriter writer = new StreamWriter(log))
     {
          // Data
     }
}

你可以明显地构建或改进它,这只是为了提供一个例子。希望这能指出你正确的方向,没有更多细节,那么我无法提供更多的帮助。

但是,这是您可以访问公共区域中的数据并写出您选择的文件的方式。