DOBON.NET ソフトサポート掲示板

■54 / 2階層)  ファイルリスト作成機で
□投稿者/ やま -(2008/02/02(Sat) 02:14:58)
  • アイコン> 申し訳ないのですが、現時点ではやり方が全くわかりませんので、難しいです。
    > もし簡単なやり方があるようでしたら、考慮させていただきます。

    わざわざ返信ありがとうございます。

    前回、説明が足りなかったようなので、補足させていただきます。
    リカバリレコードとは「Winrar」という圧縮ソフトで使用されているもので、平たく言うと、破損修復用のパリティレコードのことです。これを圧縮時に付加しておくと、たとえばデータをHDDからHDDへ、あるいはDVD-Rなどへコピーした際などなど、軽微な欠損や不整合が発生し解凍できなくなったときに、セクタ情報を読み込み、ファイルそのものを修復することができる、という機能です。すでにRar形式のファイルでリカバリレコードが吹かされてなくても、後から追加することもできます。
    (Winrarをためしにインストールしていただくと、私の説明も少しは分かりやすくなるかもしれません。)

    以前、DVD-Rに入れていたデータがこのリカバリレコード機能で修復できて、あやうく仕事に大穴をあける所を助けてもらって以来、重宝してます。
    ただ、どうしても扱うファイルが多く、個別リカバリレコードのチェックが大変なので、もし一気にチェックできれば、と思いました。


    Awkを使ったスクリプトは入手できましたが、どうでしょうか…。
    ↓のスクリプトだと、外部モジュールUnrar it sampleを使用せねばならないようになっていて、ちょっと厳しそうではありますが、Rarファイルのヘッダ情報から拾ってこれるのでは?とは思いますが…。ただ、難易度自体はそこまででもない、とのことです。
    もし、これを参考になさって、作れそうでしたら、ぜひお願いします。

    *******************************
    手順としては、コマンドラインから「unrar lt sample.rar」の出力を利用してリストを作る。使い方はパイプでawkに渡して処理「unrar lt *.rar | gawk -f rr.awk」を実行する。外部「rr.awk」の書式は↓を参照してください。

    rr.awk
    #!/usr/local/bin/gawk

    BEGIN {$rr=0; printf "%-30s\t%s\n", "FileName", "RecoveryRecord";}

    {if($1=="Solid" && $2=="archive"){
    for(i=3;i<=NF;i++) printf "%-30s ",$i;printf "\t";getline;getline;
    if($0=="Recovery record is present"){printf "Yes / ";
    for(;;){getline;if($0=="Data header type: RR"){getline;printf "%sbyte\n",$2;break;}}
    }else printf "No\n";}}
    ************************
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[1]: ファイルリスト作成機で /管理人 →Re[3]: ファイルリスト作成機で /管理人
 
上記関連ツリー

Nomalアイコン ファイルリスト作成機で / やま (08/01/30(Wed) 01:30) #52
Nomalアイコン Re[1]: ファイルリスト作成機で / 管理人 (08/02/01(Fri) 03:29) #53
  └Nomalアイコン ファイルリスト作成機で / やま (08/02/02(Sat) 02:14) #54 ←Now
    └Nomalアイコン Re[3]: ファイルリスト作成機で / 管理人 (08/02/03(Sun) 03:14) #55

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Pass/


- Child Tree -