簡體   English   中英

使用mysqlBackup備份數據庫時拒絕訪問路徑

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM