2013-02-08 102 views
0

我實際上正在處理一個應用程序,其中從我的數據庫中檢索到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(); 
+1

此代碼不會關閉您的文件。請查看* using *關鍵字。 – 2013-02-08 17:09:11

+0

呵呵你是什麼意思,你可以給我更多的細節,哪個文件不關閉,文件流? – avi 2013-02-08 17:20:41

+0

那麼它不*保證*關閉文件。假設文件的路徑不存在,或者用戶沒有對路徑的訪問權限。你的代碼會拋出一個異常,並且永遠不會執行'fs.Close()'。這就是爲什麼你應該總是使用'using'語句來實現'IDisposable',比如'FileStream'。 – 2013-02-08 23:55:22

回答

2

您正在尋找File.Exists()函數。

+0

感謝隊友,這正是我所期待的。 – avi 2013-02-08 17:18:36

0

我沒有看到你在代碼中使用OpenFileDialog,但你應該使用SaveFileDialog類保存文件,並設置它的屬性CheckFileExists=true