我實際上正在處理一個應用程序,其中從我的數據庫中檢索到blob文件,並將其轉換爲原始文件,然後保存在桌面上。我想知道是否可以檢查桌面上是否存在名爲「xxx」的文件,然後它會提示我輸入其他名稱。這裏是我的代碼:在C#中使用OpenFileDialog保存文件
myData.Read();
FileSize = myData.GetUInt32(myData.GetOrdinal("filesize"));
rawData = new byte[FileSize];
myData.GetBytes(myData.GetOrdinal("file"), 0, rawData, 0, (int)FileSize);
// must change paths
String desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
fs = new FileStream(@desktopPath + "\\" + myData.GetString("title") + myData.GetString("extension"), FileMode.OpenOrCreate, FileAccess.Write);
myFilePath = desktopPath + "\\" + myData.GetString("title") +myData.GetString("extension");
fs.Write(rawData, 0, (int)FileSize);
fs.Close();
此代碼不會關閉您的文件。請查看* using *關鍵字。 – 2013-02-08 17:09:11
呵呵你是什麼意思,你可以給我更多的細節,哪個文件不關閉,文件流? – avi 2013-02-08 17:20:41
那麼它不*保證*關閉文件。假設文件的路徑不存在,或者用戶沒有對路徑的訪問權限。你的代碼會拋出一個異常,並且永遠不會執行'fs.Close()'。這就是爲什麼你應該總是使用'using'語句來實現'IDisposable',比如'FileStream'。 – 2013-02-08 23:55:22