C #: новый файл () - где находится корневой каталог для сохранения? - PullRequest
2 голосов
/ 22 июля 2010

Если я сделаю вызов File myFile = new File ('myfile.txt');куда это сохраняется?

Ответы [ 3 ]

8 голосов
/ 22 июля 2010

Относительно текущего каталога процесса.Что это будет зависеть от того, как было запущено ваше приложение и что еще вы сделали, например, некоторые вещи, такие как диалог выбора файла, могут изменить текущий рабочий каталог.после временного файла, Path.GetTempFileName(), вероятно, то, что вы ищете.Вы можете получить временную папку с помощью Path.GetTempPath().

0 голосов
/ 22 июля 2010

НОРМАЛЬНО он сохраняется в том же каталоге, в котором выполняется исполняемый файл. Я видел исключения. (Я не могу вспомнить конкретику, но это заставило меня задуматься о цикле. Кажется, я вспоминаю, что когда он запускался как запланированное задание или запускался из ярлыка.

Единственный надежный способ узнать, куда он будет сохранен, если вы используете предоставленный вами фрагмент кода, - это проверить значение System.Environment.CurrentDirectory. А еще лучше, укажите путь, по которому вы хотите его сохранить.

Редактировать - добавлено

Я знаю, что это немного поздно для изменения этого вопроса, но я нашел лучший ответ на проблему обеспечения того, чтобы вы всегда сохраняли файл в правильном месте, относительно исполняемого файла. Принятый ответ там стоит голосов "за" и, вероятно, имеет отношение к вашему вопросу.

См. Здесь: Должен ли я использовать AppDomain.CurrentDomain.BaseDirectory или System.Environment.CurrentDirectory?

0 голосов
/ 22 июля 2010

Это не скомпилируется.

РЕДАКТИРОВАТЬ: Однако, если вы после того, как создаете текстовый файл с помощью StreamWriter или File.Create ("text.txt") и т. Д., То я откладываю надругие ответы выше;где это будет, где приложение запускается.Помните, как и другие упоминали, что если вы работаете без отладки, она будет в папке отладки и т. Д.

...