![](/img/trans.png)
[英]How to simulate a link being clicked through C# Windows Forms App, that locally generates a file?
[英]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.