簡體   English   中英

c#-無法備份mysql數據庫,錯誤為“不支持給定路徑的格式。”

[英]c# - unable to backup mysql database with error “The given path's format is not supported.”

private void Backup()
    {
        string x = txtb.Text; 
        string date = DateTime.Now.ToString("MM-dd-yyyy HH:mm:ss");
        string file = x + date + "database backup.sql";
        string conn = "server = localhost; user id = root; password =; database = sais_db;";

        try
        {
            MySqlBackup mb = new MySqlBackup(conn);
            mb.Export(file);
            MessageBox.Show("Database Backup Success!");
        }

        catch (MySqlException ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

請幫忙,當我運行程序時,出現NotSupportedException錯誤。 我如何解決它?

PS txtb.Text包含目錄路徑,例如C:\\ Users \\ user \\ Desktop

您的DateTime格式包括冒號。 在文件或路徑名中不允許使用這些字符,除非從路徑中分隔驅動器號。

您可以通過更改DateTime.Now調用的格式字符串輕松解決此問題:

string x = txtb.Text; 
string date = DateTime.Now.ToString("MM-dd-yyyy HH-mm-ss");
string file = x + date + "database backup.sql";

運行此文件時,您將在file獲取(assumimg txtb.Text包含foo

foo09-24-2016 14-20-59數據庫backup.sql

您也可以考慮一口氣做到這一點:

string file = String.Format(
    "{0}{1:MM-dd-yyyy HH-mm-ss}database backup.sql", 
    txtb.Text,
    DateTime.Now);

如果允許用戶提供文件名(的一部分),請考慮檢查無效字符。 System.IO命名空間中的Path類為該GetInvalidFileNameChars提供了很好的幫助。

if (file.IndexOfAny(Path.GetInvalidFileNameChars()) > -1) 
{
    // show an error
    MessageBox.Show("invalid characters in file");
   return;
}

InvalidPathChars有類似的方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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