[英]Access path denied when backing up database using mysqlBackup
我正在嘗試使用以下代碼從mysql本地服務器備份數據庫:
string folder = DateTime.Now.Date.ToString("yyyy-MM-dd");
var root = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath),"Database backup");
var newFolderPath = Path.Combine(root, folder);
if (!Directory.Exists(newFolderPath)) // if it doesn't exist, create
Directory.CreateDirectory(newFolderPath);
MySqlConnection myCon = frmStudentsSignup.establishConnectionToMysql();
using(MySqlCommand cmd = new MySqlCommand()) {
using(MySqlBackup mb = new MySqlBackup(cmd)) {
cmd.Connection = myCon;
myCon.Open();
mb.ExportToFile(newFolderPath);
myCon.Close();
}
}
午餐后,這條線
mb.ExportToFile(newFolderPath);
我懂了
access to the path ... is denied.
我的路徑位於Visual Studio項目目錄中。
另外,正在創建新目錄,因此我不知道可能是什么錯誤。
只是一個建議,但是您可以嘗試在目錄路徑中使用斜杠,例如,將newFolderPath分配行更改為
var newFolderPath = Path.Combine(root, folder) + Path.DirectorySeparatorChar;
如果這樣沒有幫助,請嘗試使用短且不包含空格或破折號(-)之類的特殊字符的路徑,例如C:\\ testpath \\
您正在嘗試另存為文件夾,而不是文件。 解決方法是:
string folder = DateTime.Now.Date.ToString("yyyy-MM-dd");
var root = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "Database backup");
var newFolderPath = Path.Combine(root, folder);
if (!Directory.Exists(newFolderPath)) // if it doesn't exist, create
Directory.CreateDirectory(newFolderPath);
// Fixed
string newFileFolderPath = Path.Combine(newFolderPath, "mybackup.sql");
MySqlConnection myCon = frmStudentsSignup.establishConnectionToMysql();
using (MySqlCommand cmd = new MySqlCommand())
{
using (MySqlBackup mb = new MySqlBackup(cmd))
{
cmd.Connection = myCon;
myCon.Open();
mb.ExportToFile(newFileFolderPath);
myCon.Close();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.