簡體   English   中英

SaveFileDialog winforms的問題

[英]issue with SaveFileDialog winforms

這是我的代碼:

        SaveFileDialog sd = new SaveFileDialog();
        sd.Title = "Select Excel Sheet to Export or Create New !";
        sd.Filter = "Excel files (*.xls)|*.xls";
        sd.FilterIndex = 0;

        sd.ShowDialog();

        if (sd.FileName != null)
        {
            AddWorksheetToExcelWorkbook(sd.FileName);
        }

這是一個簡單的10行代碼,我已經使用了很長一段時間從來沒有任何問題,但最近我使用這個但我得到錯誤,當我需要寫入文件如下:

文件名..無法找到。 檢查文件名的拼寫,並驗證文件位置是否正確。

請參閱下面的圖片,我們做什么,寫文件名並單擊保存按鈕,如果我正在創建一個新文件而不是我選擇現有文件時,我只會收到錯誤。 在此輸入圖像描述

為什么會發生這種情況我已多次使用此代碼,我也看到文件夾上沒有創建文件我保存它為什么SaveFileDialog沒有保存文件我錯過了什么?

更新:

如果我只在我寫名字並按保存時選擇已存在的文件問題,工作正常。

您需要調用OpenFile方法才能創建或覆蓋該文件。

if (!String.IsNullOrEmpty(sd.FileName))
{
   using(var fileStream = sd.OpenFile())
   {
      //you can use the stream if you need it (otherwise just close it)
   }

   AddWorksheetToExcelWorkbook(sd.FileName);    
}

來自MSDN頁面的注意事項

出於安全考慮,此方法使用所選名稱創建一個新文件,並使用讀/寫權限打開它。 如果選擇要保存的現有文件,這可能會導致無意中丟失數據。 要在保留現有數據的同時將數據保存到現有文件,請使用File類使用FileName屬性中返回的文件名打開文件。

暫無
暫無

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

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