C# を使用してプログラムで特定の SQL サーバー データベースのバックアップを作成しています。Microsoft.SqlServer.Management.Smo およびその他のライブラリがこの目的のために作成されていると考えました。これで、データベースをバックアップできます。非常に素晴らしい。コードは次のとおりです。
var server = new Server(@"" + InstanceName);
var backuper = new Backup();
try
{
backuper.Action = BackupActionType.Database;
backuper.Database = DbName;
backuper.Devices.AddDevice(DbName + ".bak", DeviceType.File);
backuper.BackupSetName = DbName + " - Yedek";
backuper.BackupSetDescription = "Açık Bulut Depo - " + DbName + " - Yedek";
backuper.ExpirationDate = DateTime.Now.AddYears(20);
server.ConnectionContext.Connect();
backuper.SqlBackup(server);
}
catch(Exception ex){//..}
ここでの私の質問は、データベースがバックアップされたデバイスのパスを取得するにはどうすればよいですか? 私は自分のパスを次のように指定できることを知っています:
backuper.Devices.AddDevice("C:\SOMEPATH\" + DbName + ".bak", DeviceType.File);
その後、実際にどこにあるかを知ることができますが、やりたいことは、デフォルトの場所にバックアップしてパスを取得することです。これで私を助けてください。