Приложение Windows Forms в общей папке, локально сохраняйте файл - PullRequest
0 голосов
/ 18 марта 2019

Моя проблема в том, что у меня есть приложение для форм Windows, которое находится в общем местоположении, которое выполняет некоторую логику, и в конце мне нужно экспортировать данные в файл Excel.

Но файл excel следует экспортировать на компьютер, на котором зарегистрированы пользователи, а не на общий сервер, на котором размещено приложение ...

Есть идеи?

Пример ситуации: Расположение приложения: 192.168.1.150 \ AppName \ App.exe

У меня есть доступ к этому общему местоположению, и я запускаю exe-файл оттуда. Мне нужно приложение для экспорта файла Excel на мой компьютер на рабочем столе .... как?

Ответы [ 2 ]

3 голосов
/ 18 марта 2019

Если вы считаете, что папка «Мои документы» является хорошим местом для сохранения файла Excel, то этот код поможет вам найти путь:

var folderPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

или, еслиВы хотите поместить файл на рабочий стол:

var folderPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)

Код работает независимо от того, где находится папка «Мои документы» (или «Рабочий стол») для пользователя (C:, D :, общий сетевой ресурс и т. Д.) Или на какой языковой версии используется его установка Windows.

Для объединения с именем файла на основе времени:

var fileName = $"your_file_{DateTime.Now:yyMMddHHmmss}.xlsx";
var fullPath = Path.Combine(folderPath, fileName);

Я часто использую на основе времениимена файлов не перезаписывать, если есть предыдущий файл.(Конечно, он будет перезаписан, если будет создан в ту же секунду)

Если вы хотите, чтобы имя файла гарантированно было уникальным, вы можете использовать Guid вместо DateTime:

var fileName = $"your_file_{Guid.NewGuid():N}.xlsx";

Если файл используется только «в программе», вы также можете сохранить его в папке временных файлов.Чтобы получить путь к папке временных файлов, вы пишете var folderPath = Path.GetTempPath()

Надеюсь, это поможет!

1 голос
/ 18 марта 2019

Почему бы вам не использовать диалог сохранения файла и сохранить файл Excel там, где вы хотите?Примерно так:

private void SaveFile_FileOk(object sender, CancelEventArgs e)
{
   string name = SaveFile.FileName;
   string[] savearray = new string[] { "some test:" }
   File.WriteAllLines(name, savearray);
   //this is just an example, your excel file goes here.
}

А на твоей кнопке сохранить:

SaveFile.ShowDialog();

Ты можешь выбрать путь, куда хочешь сохранить ...

...