簡體   English   中英

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

[英]Windows Forms app on shared location, save file locally

我的問題是我有一個Windows窗體應用程序,該應用程序位於共享位置,這在做一些邏輯,最后我需要將數據導出到excel文件中。

但是excel文件應該導出到用戶登錄的計算機上,而不要導出到承載應用程序的共享服務器上。

有任何想法嗎?

情況示例:應用程序的位置位於192.168.1.150 \\ AppName \\ App.exe

我可以訪問此共享位置,並且從那里啟動exe文件。 我需要該應用程序才能將excel文件導出到台式機上的計算機....如何?

如果您認為文件夾“我的文檔”是保存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()

希望這可以幫助!

您為什么不只使用“保存文件對話框”並將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();

您可以選擇要保存的路徑...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM