2013-05-02 189 views
3

我可能沒有正確地做到這一點,瀏覽MSDN庫並沒有多大幫助。我正試圖將我的數據庫從我的項目文件夾複製到另一個位置。我最初嘗試了桌面,並說它的目錄不可用。這是我目前擁有的。File.Copy目標文件是一個目錄,而不是文件。

private string currentDb = @"J:\Project\Project\HotelDB.accdb", 
       backUpPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), 
       newFileName = @"\"; 

我用這種方法調用它。我目前得到的錯誤是Environment.SpecialFolder.MyDocuments類表明'我的文檔'是一個文件夾,而不是文件。這告訴我,我做這一切都是錯誤的。任何指導表示讚賞。

public void backupDatabase() 
{ 
    File.Copy(currentDb, backUpPath, true); 
} 
+1

那麼就應該將相同的路徑,但與附加到它的文件名。這是因爲您也可以在複製文件時重命名文件 – 2013-05-02 07:42:07

+3

您正在將J:\ Project \ Project \ HotelDB.accdb複製到C:\ foo中,例如,您需要複製到C:\ foo \ HotelDB.accdb – paulm 2013-05-02 07:42:18

回答

9

您應該將文件名添加到目標路徑。 這在文檔中明確指出:http://msdn.microsoft.com/en-us/library/c6cfw35a.aspx

目標文件的名稱。這不能是一個目錄或一個 現有文件。

例如:

"J:\Project\Project\HotelDB.accdb" 

應該去:

"c:\HotelDB.accdb" 

(不"C:\"

+3

上午我錯誤地認爲這樣的答案(有害地)促進了「給人一條魚」的思維方式,而不是「教一個人釣魚」?該文檔很容易找到:http://msdn.microsoft.com/en-us/library/c6cfw35a.aspx – rliu 2013-05-02 07:48:19

+0

我明白你的關注,Roliu。我已經閱讀過你鏈接的文檔。我會再讀一遍,嘗試找出我錯過的東西。 – user1729696 2013-05-02 07:55:03

+0

@roliu是的,當然。我在帖子中添加了鏈接和引用。 – RvdK 2013-05-02 08:01:44

3

由於MSDN美國

DEST FileName 類型:System.String 目標文件的名稱。這不能是一個目錄。

因此,將文件的名稱添加到目標路徑。

File.Copy()

2

試試這個

private string currentDb = @"J:\Project\Project\HotelDB.accdb", 
backUpPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\HotelDB.accdb" 
相關問題