在客户端系统中,将在何处创建没有路径的文件

时间:2010-06-01 09:50:31

标签: c# .net winforms

我在Winform应用程序中有以下代码

 String[] lines = { "LAST MESSAGE", "101" };
 File.WriteAllLines("MPP_Config.txt", lines);

在我的开发系统上,文件在Bin \ Debug ...

下创建

在客户端系统中安装文件后,客户端在哪里创建文件?

我使用Click once Deployment ...

部署到一个网站

3 个答案:

答案 0 :(得分:4)

我相信它会在应用程序的当前工作目录中创建。应用程序可能无法访问此目录,尤其是在具有UAC,Vista和Windows 7的系统上。您应该考虑使用application data directory代替。

String[] lines = { "LAST MESSAGE", "101" };
String fileName = Path.combine(System.Deployment.Application.ApplicationDeployment.CurrentDeployment.DataDirectory,"MPP_Config.txt");
File.WriteAllLines(fileName, lines);

答案 1 :(得分:2)

我猜它是在调试文件夹中创建的,因为你一直在调试模式下运行它。如果您在发布模式下运行它,它将保存在bin / release文件夹中。

换句话说,它将在应用程序所在的目录中创建。为什么不试试呢?即将你的exe复制到...

答案 2 :(得分:1)

current directory中。这意味着可能很难以100%的确定性进行预测。如果你想控制它,你可以使用Environment.CurrentDirectory但是(正如Sam在评论中指出的那样)这可能不是一个好主意,因为其他代码也可能依赖于当前目录用于其他目的。

例如,以下程序将创建两个名为“somefile.txt”的不同文件(假设exe不是从c:\ temp目录运行的):

static void Main(string[] args)
{
    File.WriteAllText("somefile.txt", "some text");
    Environment.CurrentDirectory = @"c:\temp";
    File.WriteAllText("somefile.txt", "some text");
}