如何在C#窗口应用程序窗体中实际不知道目录中的完整path文件而自动find文件

我需要帮助我的C#应用​​程序,我的应用程序是基本完成只需要一个小调整,应该完成。

我的程序有许多function。 但我需要帮助的是以下几点:

我的程序会先让用户创build一个excel文件,在那里我有三个button,第一个button是打开的,会打开用户创build的创build文件,用户将文件保存在任何位置,但是当打开的button需要find该文件到用户保存文件的位置。 现在button将工作,如果我手动把文件的具体位置的位置。 但我的应用程序将使用它很多用户。 每个用户将自己的文件保存在任何目录位置。 我也有一个button,将数据保存到Excel文件,也closures它,但只要打开的文件工作正常工作。

这部分代码将创build并保存到用户所需的位置。 那么打开buttonfunction就需要自动find刚刚从计算机目录下创build的新文件。 正如我之前所说,如果我把特定的位置打开button的作品,但我不想放在文件的具体位置,因为用户将select的Excel文件的位置。

private void tlpMenuItem_SaveAs_Click(object sender, EventArgs e) { string sd; svFileDialog_SaveButton.ShowDialog(); //saveFileDialog1.InitialDirectory = "c:"; svFileDialog_SaveButton.Filter = "Excel File|*.xlsx|All Files|*.*"; Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application(); ExcelApp.Application.Workbooks.Add(Type.Missing); ExcelApp.Columns.ColumnWidth = 20; sd = svFileDialog_SaveButton.FileName; ExcelApp.ActiveWorkbook.SaveCopyAs(sd + ".xlsx"); ExcelApp.ActiveWorkbook.Saved = true; ExcelApp.Quit(); MessageBox.Show("Excel file created"); } private void OpenFile() { string findFile = ""; xlexcel = new Excel.Application(); xlexcel.Visible = true; // Open a File xlWorkBook = xlexcel.Workbooks.Open("C:\MyFile.xlsx", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); xlWorkSheet.Cells[1, 1] = "Username"; xlWorkSheet.Cells[1, 2] = "Password"; xlWorkSheet.Cells[1, 3] = "Warehouse Location"; xlWorkSheet.Cells[1, 4] = "Date"; } 

这里是我创build的文件的完整代码,打开,保存数据并closuresexcel文件

  private void tlpMenuItem_SaveAs_Click(object sender, EventArgs e) { string sd; svFileDialog_SaveButton.ShowDialog(); //saveFileDialog1.InitialDirectory = "c:"; svFileDialog_SaveButton.Filter = "Excel File|*.xlsx|All Files|*.*"; Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application(); ExcelApp.Application.Workbooks.Add(Type.Missing); ExcelApp.Columns.ColumnWidth = 20; sd = svFileDialog_SaveButton.FileName; ExcelApp.ActiveWorkbook.SaveCopyAs(sd + ".xlsx"); ExcelApp.ActiveWorkbook.Saved = true; ExcelApp.Quit(); MessageBox.Show("Excel file created"); } private void OpenFile() { string findFile = ""; xlexcel = new Excel.Application(); xlexcel.Visible = true; // Open a File xlWorkBook = xlexcel.Workbooks.Open("C:\MyFile.xlsx", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); xlWorkSheet.Cells[1, 1] = "Username"; xlWorkSheet.Cells[1, 2] = "Password"; xlWorkSheet.Cells[1, 3] = "Warehouse Location"; xlWorkSheet.Cells[1, 4] = "Date"; } private void SaveDataToAFile() { int _lastRow = xlWorkSheet.Range["A" + xlWorkSheet.Rows.Count].End[Excel.XlDirection.xlUp].Row + 1; xlWorkSheet.Cells[_lastRow, 1] = txt_Username.Text; xlWorkSheet.Cells[_lastRow, 2] = txt_Password.Text; xlWorkSheet.Cells[_lastRow, 3] = cmb_DatabaseSelection.SelectedIndex.ToString(); xlWorkSheet.Cells[_lastRow, 4] = DateTime.Now; } private void CloseFile() { xlWorkBook.Close(true, misValue, misValue); xlexcel.Quit(); ReleaseObject(xlWorkSheet); ReleaseObject(xlWorkBook); ReleaseObject(xlexcel); } private void ReleaseObject(object obj) { try { System.Runtime.InteropServices.Marshal.ReleaseComObject(obj); obj = null; } catch (Exception ex) { obj = null; MessageBox.Show("Unable to release the Object " + ex.ToString()); } finally { GC.Collect(); } } 

我的build议是创build一个variables来保存用户保存时的文件path。 您可以通过使用以下方法来实现

  String filepath; //global variable Stream stream; SaveFileDialog sf = new SaveFileDialog(); if(sf.ShowDialog() == true) { if((stream = sf.OpenFile()) != null) { filepath = sf.FileName; //Do save work } }