トップ «前の日記(2006-12-20) 最新 次の日記(2006-12-22)» 編集

日々の破片

Subscribe with livedoor Reader
著作一覧

2006-12-21

_ J#の使い途(zip)

放っておいたら、圧縮して保存するプログラムができたから見てくれというので見に行った。C#のプログラムだ。

System.IO.Compressionの下を使うのかと思ってたら、いきなりjava.ioとか書いてあるんでびっくりしたが、確かにJ#がインストールされているんならそれもありだな、と納得した。

// zip.cs
public class Zip
{
    public static void Main(string[] args)
    {
        java.util.zip.ZipOutputStream zo
            = new java.util.zip.ZipOutputStream(new
                    java.io.FileOutputStream("test.zip"));
        sbyte[] buff = new sbyte[8000]; // sbyte……確かに。
        foreach (string file in args)
        {
            // fileはファイル名(ディレクトリは含めない)
            zo.putNextEntry(new java.util.zip.ZipEntry(file));
            // バッファがsbyteなんで読み込みもJ#オブジェクトにする
            java.io.FileInputStream fs
                = new java.io.FileInputStream(file);
            for (int len = 0; (len = fs.read(buff, 0, buff.Length)) > 0;)
            {
                zo.write(buff, 0, len);
            }
            fs.close();
        }
        zo.close();
    }
}
コンパイルには、明示的にJ#ライブラリ(vjslib.dll)を指定する。
C:\> csc /reference:vjslib.dll zip.cs

追記:プロセッサはx86を指定しておかないと、何気なくx64システムに持っていくとランタイムエラーになります(Kazzさんのツッコミ参照)。

_ ハウリング

どのページに引っかかったのかと思ったら……

botに見せるページでリファラ部分は弾く設定にしてるはずだが、日経は何を使ってるんだろう?

本日のツッコミ(全2件) [ツッコミを入れる]
_ Kazz (2006-12-21 07:05)

ご存知かもしれませんが。<br><br>>vjslib.dll<br> このアセンブリは再頒布キットが必要なことと、VJ#はx86用のアセンブリしか提供されないあることに注意です(WOW64上での動作なので64Bitシステムからの呼び出しは失敗します)<br><br>http://msdn2.microsoft.com/ja-jp/library/ms241064.aspx<br> <br>

_ arton (2006-12-21 09:59)

どうもありがとうございます。64ビットシステムで使えないのは結構痛いですね(「プラットフォームの柔軟なイメージ」というのはAny指定ということなのか)<br>追記しておきました。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|

ジェズイットを見習え