Windows 共享位置上的表单应用程序,在本地保存文件

Windows Forms app on shared location, save file locally

我的问题是我有一个位于共享位置的 windows 表单应用程序,它正在执行一些逻辑,最后我需要将数据导出到 excel 文件中.

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

有什么想法吗?

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

我可以访问这个共享位置,我正在从那里启动 exe 文件。 我需要应用程序将 excel 文件导出到我电脑的桌面....如何?

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

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

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

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

无论用户的文件夹 "My Documents"(或 "Desktop")位于何处(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";

如果文件只是使用"within the program"您也可以将其存放在临时文件夹中。要获取临时文件夹的路径,请编写 var folderPath = Path.GetTempPath()

希望对您有所帮助!

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

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