目前我有这个,我需要找到一种方法来制作它,以便写出txt文件的目录,我希望它在与exe相同的位置创建它们并访问它们。
基本上我想改变这些行
string location = @"C:\Users\Ryan\Desktop\chaz\log.txt";
string location2 = @"C:\Users\Ryan\Desktop\chaz\loot.txt";
可以在计算机周围移动的东西,而不用担心它不起作用。
答案 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
和您尝试使用FileStream
或StreamWriter
操纵的文件的名称合并。
如果结构正确,可以这么简单:
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
}
}
你可以明显地构建或改进它,这只是为了提供一个例子。希望这能指出你正确的方向,没有更多细节,那么我无法提供更多的帮助。
但是,这是您可以访问公共区域中的数据并写出您选择的文件的方式。