DOBON.NET DOBON.NETプログラミング掲示板過去ログ

バックアップについて

分類:[.NET]


こんにちは、お世話になります。
現在、VB.NETでバックアップを作成及び復元するフォームを作っているのですが、

機能概要として、圧縮プログラム(UNLHA32.DLL)を利用してDBのバックアップを
作成するのですが、
どうすればいいのか全く理解できていません。
圧縮は、コマンドラインを作成して実行するのですが、コマンドラインをどう作成すればいいのか、とか、
圧縮プログラムをどう利用して・・・記述して作成すればいいのでしょうか・・。
どなたか、分かる方がいらっしゃいましたら是非教えていただけないでしょうか?

問題以前の問題で本当に申し訳ございません。
どうか、ご教授のほどよろしくお願いいたします。
  • 題名: Re[1]: バックアップについて
  • 著者: なおこ(・∀・)
  • 日時: 2005/10/18 15:14:31
  • ID: 13315
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
2005/10/18(Tue) 15:17:27 編集(投稿者)

お世話になります。

■No13314に返信(宵さんの記事)
>
> こんにちは、お世話になります。
> 現在、VB.NETでバックアップを作成及び復元するフォームを作っているのですが、
> …

DBのファイルの吐き出しはできていますか?
コマンドラインでしたら、
どぼんさんの↓でしょうか。
http://dobon.net/vb/dotnet/process/standardoutput.html

# 読み間違いがあったので修正
DBのバックアップにUNLHA32.DLLは使わないなー。
お世話になります。
お二方とも迅速なお返事ありがとうございます。
よろしくお願い致します。


>DBのファイルの吐き出しはできていますか?

A=保存先のディレクトリのパス
copy=コピー元のパス
Dcipy = コピー先のパス

'システムフォルダが存在しなければ、フォルダ作成処理
If System.IO.File.Exists(A) = True Then
' フォルダは存在する
Else
' ディレクトリを (フォルダ) 作成する
System.IO.Directory.CreateDirectory(A)
End If

'データベースのコピー
' コピー元 ・ コピー先
System.IO.File.Copy(copy, Dcipy, True(上書き可))

'作業テーブル削除
'DB最適化




で実は、
System.IO.File.Copy(copy, Dcipy, True(上書き可)) ←の部分で下記のようなエラーが発生し

『'System.IO.IOException' のハンドルされていない例外が mscorlib.dll で発生しました。

追加情報 : ターゲット ディレクトリは既に存在します。』
と発生してしまっていて、DBの吐き出し自体はまだ出来ていない状態です。

>コマンドラインでしたら、
>どぼんさんの↓でしょうか。
>http://dobon.net/vb/dotnet/process/standardoutput.html

コマンドラインの使用方法ありがとうございました。
私の調べ方が足りませんでした。ありかとうございます!!
これを利用してコマンドラインは理解できそうです。


■No13316に返信(はいこーんさんの記事)
> DBのバックアップにUNLHA32.DLLは使わないなー。

そうなのですか。
良く分からなくて。すみません。
バックアップを作成するのは初めてで・・。
普通(?)は何を利用しているのでしょうか・・。
しかし、仕様書では 圧縮プログラムUNLHA32.DLLを利用して・・・とあるので、
利用しないといけないのです。


何も分からなくてすみません。
よろしくお願い致します。
お世話になります。

■No13317に返信(宵さんの記事)
> 'システムフォルダが存在しなければ、フォルダ作成処理
> If System.IO.File.Exists(A) = True Then
> ' フォルダは存在する
> Else
> ' ディレクトリを (フォルダ) 作成する
> System.IO.Directory.CreateDirectory(A)
> End If

これ、System.IO.File.Existsでなくて、
System.IO.Directory.Existsの間違いでは?
↓ここでなくて、メッセージを読む限りでは↑で発生している模様。

> System.IO.File.Copy(copy, Dcipy, True(上書き可)) ←の部分で下記のようなエラーが発生し
>
> 『'System.IO.IOException' のハンドルされていない例外が mscorlib.dll で発生しました。
>
> 追加情報 : ターゲット ディレクトリは既に存在します。』
■No13318に返信(なおこ(・∀・)さんの記事)
> お世話になります。
>
> ■No13317に返信(宵さんの記事)
>>'システムフォルダが存在しなければ、フォルダ作成処理
>>If System.IO.File.Exists(A) = True Then
>> ' フォルダは存在する
>>Else
>> ' ディレクトリを (フォルダ) 作成する
>> System.IO.Directory.CreateDirectory(A)
>>End If
>
> これ、System.IO.File.Existsでなくて、
> System.IO.Directory.Existsの間違いでは?
> ↓ここでなくて、メッセージを読む限りでは↑で発生している模様。
>
>>System.IO.File.Copy(copy, Dcipy, True(上書き可)) ←の部分で下記のようなエラーが発生し

ご指摘ありがとうございます。
早速修正したのですが。
『System.IO.IOException' のハンドルされていない例外が mscorlib.dll で発生しました。

追加情報 : ターゲット ディレクトリは既に存在します。』
と同じエラーが発生してしまいました。


'システムフォルダが存在しなければ、フォルダ作成処理
If System.IO.Directory.Exists(A) = True Then
' フォルダは存在する
Else
' ディレクトリを (フォルダ) 作成する
System.IO.Directory.CreateDirectory(A)
End If

'データベースのコピー
' コピー元 ・ コピー先
System.IO.File.Copy(copy, Dcipy, True(上書き可))

'作業テーブル削除
'DB最適化



よろしくお願いします。
お手数お掛けしてすみません。
お世話になります。

■No13319に返信(宵さんの記事)
> 早速修正したのですが。
> 『System.IO.IOException' のハンドルされていない例外が mscorlib.dll で発生しました。
>
> 追加情報 : ターゲット ディレクトリは既に存在します。』
> と同じエラーが発生してしまいました。
>
>
> 'システムフォルダが存在しなければ、フォルダ作成処理
> If System.IO.Directory.Exists(A) = True Then
> ' フォルダは存在する
> Else
> ' ディレクトリを (フォルダ) 作成する
> System.IO.Directory.CreateDirectory(A)
> End If
>
> 'データベースのコピー
> ' コピー元 ・ コピー先
> System.IO.File.Copy(copy, Dcipy, True(上書き可))

私は以下のソースでコピーできましたよ。
変数Dcipyの中身は問題ないですか?
================================================
Const BACKUP_DIR As String = "D:\BackUpTest"

Try
  If Not System.IO.Directory.Exists(BACKUP_DIR) Then
    '存在しない時ディレクトリを作成する
    System.IO.Directory.CreateDirectory(BACKUP_DIR)
  End If

  Dim copyFile As String
  copyFile = "C:\test.txt"
  System.IO.File.Copy(copyFile, BACKUP_DIR + "\こぴーしたファイル.TXT", True)

  MessageBox.Show("コピーしました")
Catch ex As Exception
  Console.WriteLine(ex.StackTrace)
End Try
■No13320に返信(なおこ(・∀・)さんの記事)
> お世話になります。
>
> ■No13319に返信(宵さんの記事)
>>早速修正したのですが。
>>『System.IO.IOException' のハンドルされていない例外が mscorlib.dll で発生しました。
>>
>>追加情報 : ターゲット ディレクトリは既に存在します。』
>>と同じエラーが発生してしまいました。
>>
>>
>>'システムフォルダが存在しなければ、フォルダ作成処理
>>If System.IO.Directory.Exists(A) = True Then
>> ' フォルダは存在する
>>Else
>> ' ディレクトリを (フォルダ) 作成する
>> System.IO.Directory.CreateDirectory(A)
>>End If
>>
>>'データベースのコピー
>> ' コピー元 ・ コピー先
>>System.IO.File.Copy(copy, Dcipy, True(上書き可))
>
> 私は以下のソースでコピーできましたよ。
> 変数Dcipyの中身は問題ないですか?
> ================================================
> Const BACKUP_DIR As String = "D:\BackUpTest"
>
> Try
>   If Not System.IO.Directory.Exists(BACKUP_DIR) Then
>     '存在しない時ディレクトリを作成する
>     System.IO.Directory.CreateDirectory(BACKUP_DIR)
>   End If
>
>   Dim copyFile As String
>   copyFile = "C:\test.txt"
>   System.IO.File.Copy(copyFile, BACKUP_DIR + "\こぴーしたファイル.TXT", True)
>
>   MessageBox.Show("コピーしました")
> Catch ex As Exception
>   Console.WriteLine(ex.StackTrace)
> End Try
>

早々のお返事しかもサンプルも頂きありがとうございました.
無事エラーを排除することができました。

エラーの原因はご指摘の通りDcipyが原因でした。
なおこ様のサンプルを使わせていただくと、
>   System.IO.File.Copy(copyFile, BACKUP_DIR + "\こぴーしたファイル.TXT", True)
の『+ "\こぴーしたファイル.TXT』の部分を宣言していませんでした。
単純すぎますよね。本当にお騒がせしました。

ありがとうございます!!
> 追加情報 : ターゲット ディレクトリは既に存在します。』
> と同じエラーが発生してしまいました。

コピー先に既存のディレクトリを指定することはできません。
この場合、c:\temp を d:\temp にコピーする場合、
一旦d:\tempを削除する必要があります。※またはリネーム

で、Copyメソッドを探していましたが、案の定、
http://dobon.net/vb/dotnet/file/copyfolder.html
ここを参考にしてください。
■No13322に返信(まどかさんの記事)
>>追加情報 : ターゲット ディレクトリは既に存在します。』
>>と同じエラーが発生してしまいました。
>
> コピー先に既存のディレクトリを指定することはできません。
> この場合、c:\temp を d:\temp にコピーする場合、
> 一旦d:\tempを削除する必要があります。※またはリネーム
>
> で、Copyメソッドを探していましたが、案の定、
> http://dobon.net/vb/dotnet/file/copyfolder.html
> ここを参考にしてください。

分かりました!!
丁寧なご説明ありがとうございました!!
解決マークを忘れていたので書き込みします。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板