Где будет создан файл без пути в клиентской системе - PullRequest
3 голосов
/ 01 июня 2010

У меня есть следующий код в приложении Winform

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

В моей системе разработки файл создается в папке Bin \ Debug ...

Где файл будет создан на клиенте после его установки в клиентской системе?

Я развертываю на веб-сайт, используя Раз развертывание Click ...

Ответы [ 3 ]

4 голосов
/ 01 июня 2010

Я верю, что он будет создан в текущем рабочем каталоге приложения. Приложение может не иметь доступа к этому каталогу, особенно в системах с UAC , Vista и Windows 7. Возможно, вам следует подумать об использовании каталога данных приложения вместо этого.

String[] lines = { "LAST MESSAGE", "101" };
String fileName = Path.combine(System.Deployment.Application.ApplicationDeployment.CurrentDeployment.DataDirectory,"MPP_Config.txt");
File.WriteAllLines(fileName, lines);
2 голосов
/ 01 июня 2010

Я предполагаю, что он создается в папке отладки, потому что вы запускаете его в режиме отладки. Если вы запустили его в режиме выпуска, он будет сохранен в папке bin / release.

Другими словами, он будет создан в каталоге, в котором находится приложение. Почему бы не попробовать это? То есть скопируйте свой exe через ...

1 голос
/ 01 июня 2010

В текущем каталоге . Это означает, что это может быть трудно предсказать со 100% уверенностью. Если вы хотите контролировать его, вы можете использовать Environment.CurrentDirectory, но (как отмечает Сэм в комментариях) это может быть не очень хорошей идеей, поскольку другой код может зависеть от текущего каталога для других целей.

Например, следующая программа создаст два разных файла с именем "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");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...