STAP STAP

STAP = (動詞)スタップする、カシャカシャする(造語)
 

スポンサーサイト 

No. : --/--/--(--) --:--:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

今の状態 

No.325 : 2009/01/25(Sun) 22:30:01
コンピュータ業界でいうところの、バッファオーバーフロー。
スポンサーサイト

C# で Zip を扱ってみる [ DotNetZip ] 

No.324 : 2009/01/19(Mon) 20:40:44
修羅場ってるときこそ更新したくなるのは理不尽。
転送するファイルをアーカイブするのに、アーカイブ方法として ZIP を選んだんですが、
C# だといまいち ZIP は扱いづらいみたいです。
J# のライブラリや SharpZipLib を使う方法があるみたいですが、どちらもバグが多いらしい。
ってことで使ってみました DotNetZip

使い方
1)右側にある Download をクリック
2)DevKit をダウンロード(インテリセンス用のXMLファイルとかヘルプが入ってる)
3)Ionic.Utils.Zip.dll を参照に追加(XMLファイルなどは自動で読み込まれます)
4)コードをおもむろに書き始める。

using System;
using System.Text;
using System.IO;
using Ionic.Utils.Zip;

string dirPath = "D:\\Test";
string savePath = dirPath + ".zip";

// D:\Test (ディレクトリ)を圧縮
using(ZipFile zip = new ZipFile(savePath))
{
zip.ForceNoCompression = true;
zip.Encoding = Encoding.GetEncoding("shift-jis");
zip.AddDirectory(dirPath);
zip.Save();
}

// 展開用のディレクトリを作成
Directory.CreateDirectory("D:\\ExtractTest");

// D:\Test.zip を展開
using (ZipFile zip = ZipFile.Read(savePath, Encoding.GetEncoding("shift-jis")))
{
foreach (ZipEntry e in zip)
{
e.Extract("D:\\ExtractTest");
}
}


使い方はこんな感じ。非常に簡単。
Encoding は Shift-JIS にしておかないとファイル名に日本語が含まれる場合に文字化けするようです。
当たり前ですが、ファイル名に日本語が含まれて居なければ、ファイルの中身に日本語を含んでいても大丈夫です。

ところで、圧縮率の設定を探してみたけどよくわかりませんでした。もしかして設定できない?

接続相手のIPアドレスとポート番号を取得する 

No.323 : 2009/01/19(Mon) 14:13:50
TCP通信するプログラムを書いてて気付いたので。
今まで TcpListener でリッスンしてるときに接続してきた相手の IP Address とポート番号を取得するには、
TcpListener.AcceptSocket() でソケットを取得して Socket.RemoteEndPoint を得るしかないと
思っていたけど、
実は TcpClient.Client で基になるソケットを取得できることを最近知った。


using System;
using System.Net.Sockets;

TcpListener listener = new TcpListener(IPAddress.Any, 80);
listener.Start();

using(TcpClient tcpcon = listener.AcceptTcpClient()){
    IPEndPoint ipep = (IPEndPoint)tcpcon.Client.RemoteEndPoint;
    Console.WriteLine(String.Format("Remote IP Address > {0}:{1}"
        ,ipep.IPAddressipep.Port));
}
listener.Stop();


TcpClient の方が扱いが楽なので助かる

修羅場 

No.322 : 2009/01/18(Sun) 18:54:38
一人で修羅場ってます。
一応20日提出の予稿はいいとして、そこから1週間でプログラム作ってプレゼン作って原稿書いて練習してって…鬼!この鬼っっ!
ごらんの有様になるまで遊んでた俺が一方的に悪いんですけどね(^p^)
ネットワーク関係のソフトってあたりがまた余計に時間がかかる理由でもあります。
とりあえず20日にテスト版を完成させて、配って、テストして、どうにか発表までに完成させます。

しかし口内炎が痛い。舌の裏と下唇の奥に2箇所ってあんた。こんなの久しぶり。

あけましておめでとうございます 

No.321 : 2009/01/04(Sun) 15:16:47
明けましておめでとうございます。
旧年中は色々とお世話になりました。
2009年もよろしくお願いします。

ところで、2008年でホームページを更新した回数を数えてみて愕然としました。
学生で時間なんかたっぷりあるのになんだこの体たらくはww
これだから弱小は(ry
そういうわけで、2009年の抱負は「時間を有効利用して、充実したインターネット生活を送る」です。
なんだか不健康な抱負ですが、これを目標に頑張って生きたいと思います。


すでに正月休みの時間を有効に利用できてないわけですが…orz
| HOME |

calendar

S M T W T F S
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
12« 2009/01 »02

Profile

エイチム

Author:エイチム
programmingに
興味を示す高専生

Diary

Recent Comments

Archives

Category

Link

このブログをリンクに追加する

RSS


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。