【開発】DataSetのファイル保存をちょっとだけ見難くする

sc20110830041103

Datasetには、WriteXMLというとっても便利なシリアライザが付いてるのですが、案の定、テキストファイルで普通に見れちゃいます。

これをあえて、見難くします。

もちろん暗号化という方法もありますが、ここでは簡単にですが、見難くしてシリアライズ化できる方法をば。


やってみたのは、まずバイナリ保存です。

public static bool SaveCompressFile(object obj, string path)
{
using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write))
{
	using (DeflateStream ds = new DeflateStream(fs, CompressionMode.Compress, true))
	{
	try
	{
	BinaryFormatter bf = new BinaryFormatter();
	//シリアル化して書き込む
	bf.Serialize(ds, obj);
	return true;
	}
	catch { return false; }
	}
}
}

(見辛くてすいません。PREのスタイル書かないと・・(;・∀・))

見ての通り、deflate圧縮にてコンプレスしてます。ファイルも小さくなるし、一石二鳥と。デシリアライズも同じように書けます(DeflateStreamの第三引数は不要)

ただ単純にバイナリ化しただけ(DeflateStreamが無いバージョン)では、バイナリなんですが・・見た目がXMLで保存されちゃってます(テキストエディタで開くと、表示は一部崩れてるが中身が見れる)

これに、圧縮掛けて、完全にテキストで見れないようにしただけ・・と。

.netでは公開鍵暗号化もできるので、本当に見せたくない時はそちらの方法を。