[英]SaveFileDialog locking save file location c# winforms
我正在使用“保存文件”對話框來獲取要保存文件的位置。
private string GetSaveLocationFromUser(string filter)
{
string location = string.Empty;
using (SaveFileDialog sfd = new SaveFileDialog())
{
sfd.Filter = filter;
sfd.FilterIndex = 1;
sfd.RestoreDirectory = true;
sfd.InitialDirectory = GetFolderNameDefault();
sfd.FileName = GetFileDefaultName();
if (sfd.ShowDialog() == DialogResult.OK)
{
location = sfd.FileName;
}
}
return location;
}
這樣可以很好地獲取文件位置,但是當我稍后在代碼中實際保存文件時,出現了一個異常,說明該文件已經存在,因此無法保存該文件。
以下代碼使用ClosedXML將excel文檔保存在所選位置。
using (XLWorkbook wb = new XLWorkbook())
{
wb.Worksheets.Add(data, ReportTitle);
wb.SaveAs(filename);
isSuccess = true;
}
如果我將文件名更改為1個字符,例如test.xlsx-> test1.xlsx,它將正常工作。 幾乎就像“保存文件”對話框在選中該文件位置時那樣,這意味着我以后不能保存到該文件位置了嗎?
任何想法將不勝感激。
嘗試將Workbook.SaveAs
的ConflictResolution
參數設置為xlLocalSessionChanges
以便它始終接受您的更改。 就像是:
wb.SaveAs(filename, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, true, false, XlSaveAsAccessMode.xlNoChange, XlSaveConflictResolution.xlLocalSessionChanges, Type.Missing, Type.Missing);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.