Windows Forms应用程序位于共享位置,本地保存文件

时间:2019-03-18 09:35:49

标签: c# winforms export-to-excel

我的问题是我有一个Windows窗体应用程序,该应用程序位于共享位置上,这在做一些逻辑,最后我需要将数据导出到excel文件中。

但是excel文件应该导出到用户登录的计算机上,而不是在托管应用程序的共享服务器上...

有什么想法吗?

情况示例: 该应用程序的位置在192.168.1.150 \ AppName \ App.exe

我可以访问此共享位置,并且我从那里启动exe文件。 我需要该应用程序才能将excel文件导出到台式机上的计算机....如何?

2 个答案:

答案 0 :(得分:3)

如果您认为文件夹“我的文档”是保存Excel文件的好地方,那么此代码将帮助您获取路径:

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

或者如果您要将文件放在桌面上:

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

无论用户使用文件夹“我的文档”(或“桌面”)(C:,D :、网络共享等)还是Windows安装所使用的语言版本,该代码均有效。 / p>

要结合基于时间的文件名:

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 :(得分:1)

为什么不只使用“保存文件对话框”并将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();

您可以选择要保存的路径...