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

FDの枚数を調べる

環境/言語:[WIN 2000 vb.net2003]
分類:[.NET]

こんにちは、連日の書き込み失礼します。

今回、皆様にご教授賜りたいことがあり、書き込みいたしました。


現在フォームを使用してバックアップを作成・復元をするのを作成しています。
今回お聞きしたいのは、バックアップ復元パスの復元先が『A:\』(FD)のとき
復元元のファイルの存在確認を各FD毎に調べ、そして
『処理するFDの枚数が1枚だけの処理』、または、『FDが1枚以上の時の処理』と
それぞれ保存先(システムフォルダに保存する)のファイル名が異なるようにしたいのですが、
どうやって、FDの枚数を調べていけば良いのでしょうか?

どなたか、ご教授をよろしくお願い致します。
こんにちは、じゃんぬ です。

■No13332に返信(宵さんの記事)
> どうやって、FDの枚数を調べていけば良いのでしょうか?
容量 / FD 1 枚あたりの容量
割り切れなければ + 1 ですね。

ファイルをすべて圧縮してひとつにしたものを分割して... なんていうのが多いですね。
> 今回お聞きしたいのは、バックアップ復元パスの復元先が『A:\』(FD)のとき
> 復元元のファイルの存在確認を各FD毎に調べ、そして
> 『処理するFDの枚数が1枚だけの処理』、または、『FDが1枚以上の時の処理』と

「復元」という言葉のみが出てきているので、「分割ではない」と解釈してよろしいですか?

とすると
> それぞれ保存先(システムフォルダに保存する)のファイル名が異なるようにしたいのですが、
これの意味がわからないのですが。。。

> どうやって、FDの枚数を調べていけば良いのでしょうか?

分割であればじゃんぬさんのおっしゃるとおりです。
ただし、複数ファイルであれば必ずしも合計サイズを保存できるとは限らないので
注意してください。
#FATのパンクのことです。
お二方とも早々の書き込み有難うございます。

■No13335に返信(まどかさんの記事)
>>今回お聞きしたいのは、バックアップ復元パスの復元先が『A:\』(FD)のとき
>>復元元のファイルの存在確認を各FD毎に調べ、そして
>>『処理するFDの枚数が1枚だけの処理』、または、『FDが1枚以上の時の処理』と
>
> 「復元」という言葉のみが出てきているので、「分割ではない」と解釈してよろしいですか?
>
> とすると
>>それぞれ保存先(システムフォルダに保存する)のファイル名が異なるようにしたいのですが、
> これの意味がわからないのですが。。。
>

説明不足ですみません。
ていうか、意味わからないですよね。
すみません。

復元ファイルはバックアップ作成時に圧縮し保存したMDBファイルの容量によって
FDディスクが複数枚にわたる場合もあります。

復元元ファイル(圧縮済み)をシステムフォルダに保存して
システムフォルダ先で解凍処理を行います。

FDが1枚ですんだ場合は、
ファイル名を
System.IO.File.Copy(コピー元,コピー先)", False)
コピー先ファイル名を『生産管理_DB.LHZ』という名前で保存して
解凍処理

FDが1枚目以上の場合は、
それぞれのファイルのディスクNoの作成日時を調べて1枚目と整合性が取れているかチェックし
整合性が取れてなければ、エラーメッセージを出してディスクを差し替え『再試行』
させたあと、
システムファイル内に『生産管理_DB.LHZ』ファイルを作成し
コピーした内容を書き込むという作業をしたいのです。
そして解凍処理をする



>>どうやって、FDの枚数を調べていけば良いのでしょうか?
>
> 分割であればじゃんぬさんのおっしゃるとおりです。
> ただし、複数ファイルであれば必ずしも合計サイズを保存できるとは限らないので
> 注意してください。
> #FATのパンクのことです。

つたない説明ですみません。
よろしくお願い致します。
> FDが1枚目以上の場合は、
> それぞれのファイルのディスクNoの作成日時を調べて1枚目と整合性が取れているかチェックし
> 整合性が取れてなければ、エラーメッセージを出してディスクを差し替え『再試行』
> させたあと、
> システムファイル内に『生産管理_DB.LHZ』ファイルを作成し
> コピーした内容を書き込むという作業をしたいのです。
> >>どうやって、FDの枚数を調べていけば良いのでしょうか?

その分割されたファイルはどうなってるのでしょうか?
分割の処理も今から作成されるのですか?
それともフリーソフトなどによる分割済みファイルですか?
鶏と卵ではないですが、分割→復元のはずです。
つまり「整合性」は分割仕様と照らし合わせた結果ですよね。

もし今から分割の部分を作成ならば、「枚数」という概念を埋め込む必要があり、
次のような考慮が考えられます。
・枚数(ファイル数)の保存
・ファイル名の規則
・CRCの保存
・情報ファイルの作成
 ・・各FDにFDnなどの空ファイルを作る
 ・・独自にヘッダファイルを作る(その中にファイル一覧などを保存)
理解しやすい説明を本当に有難うございます。
勉強になります。

■No13338に返信(まどかさんの記事)
>>FDが1枚目以上の場合は、
>>それぞれのファイルのディスクNoの作成日時を調べて1枚目と整合性が取れているかチェックし
>>整合性が取れてなければ、エラーメッセージを出してディスクを差し替え『再試行』
>>させたあと、
>>システムファイル内に『生産管理_DB.LHZ』ファイルを作成し
>>コピーした内容を書き込むという作業をしたいのです。
>>>>どうやって、FDの枚数を調べていけば良いのでしょうか?
>
> その分割されたファイルはどうなってるのでしょうか?
> 分割の処理も今から作成されるのですか?
> それともフリーソフトなどによる分割済みファイルですか?
> 鶏と卵ではないですが、分割→復元のはずです。
> つまり「整合性」は分割仕様と照らし合わせた結果ですよね。

説明が足らずにすみません。
すみません、フリーソフトで分割済みでした。


> もし今から分割の部分を作成ならば、「枚数」という概念を埋め込む必要があり、
> 次のような考慮が考えられます。
> ・枚数(ファイル数)の保存
> ・ファイル名の規則
> ・CRCの保存
> ・情報ファイルの作成
>  ・・各FDにFDnなどの空ファイルを作る
>  ・・独自にヘッダファイルを作る(その中にファイル一覧などを保存)
>
分割の部分を作成するのは処理の記述が難しそうですね。
作成する場合、概念を埋め込む作業というのはどうすればいいのでしょうか。
・・・本当に何も知らなくてごめんなさい。
> 分割の部分を作成するのは処理の記述が難しそうですね。
> 作成する場合、概念を埋め込む作業というのはどうすればいいのでしょうか。

#分割そのものはおいといて

要は仕様を決めるということです。
今回の場合、FDの数と順番をチェックできればよいはずです。
例えば、1枚目にオリジナルファイル名.infというファイルを必ず作るとします。
そしたらそのファイルに数やファイル名一覧や最終ファイル名などを書いておけばよいでしょう。
アプリでは「*.infのあるフロッピーを入れてください」と表示してそのファイルを読み、
「*.001のフロッピーを入れてください」などと続けていけばよいでしょう。
お返事か遅くなりすみません。

>
> 要は仕様を決めるということです。
> 今回の場合、FDの数と順番をチェックできればよいはずです。
> 例えば、1枚目にオリジナルファイル名.infというファイルを必ず作るとします。
> そしたらそのファイルに数やファイル名一覧や最終ファイル名などを書いておけばよいでしょう。
> アプリでは「*.infのあるフロッピーを入れてください」と表示してそのファイルを読み、
> 「*.001のフロッピーを入れてください」などと続けていけばよいでしょう。

なるぼと・・・理解できました!
ですが、非常に馬鹿な質問でごめんなさい。
> そしたらそのファイルに数やファイル名一覧や最終ファイル名などを書いておけばよいでしょう。
そのファイルに書き込む作業というのは、なにか、関数等を利用して書き込むのですか?

お手数をお掛けしてすみません。
馬鹿な質問すみません。
よろしくお願いします。
> そのファイルに書き込む作業というのは、なにか、関数等を利用して書き込むのですか?

テキストファイルの入出力をおこなったことはありませんか?
いろいろやり方はあると思いますが、
Frameworkのクラスならヘルプの「TextReaderについて」のページのサンプルや
このどぼんさんのTipsに載っています。
  • 題名: Re[8]: FDの枚数を調べる
  • 著者: 宵
  • 日時: 2005/10/20 14:34:00
  • ID: 13356
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No13354に返信(まどかさんの記事)
>>そのファイルに書き込む作業というのは、なにか、関数等を利用して書き込むのですか?
>
> テキストファイルの入出力をおこなったことはありませんか?
> いろいろやり方はあると思いますが、
> Frameworkのクラスならヘルプの「TextReaderについて」のページのサンプルや
> このどぼんさんのTipsに載っています。

有難うございました!!
かなり勉強になりました。
サンプル等を利用しつつやってみたいと思います。
有難うございました。
お手数お掛けいたしました.m(_ _)m
解決済み!

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