ストリーム(バイト配列)を直接開くには

解決


牙竜  2005-08-08 15:55:50  No: 124008  IP: [192.*.*.*]

OS:windows2000
言語:vb .net

現在、圧縮・解凍のプログラムを作成中です。
そこで、圧縮ファイルの内容をリストで表示し、
ダブルクリックで直接ファイルを開く、
という事をしようとしています。

ただし、process.startやshellでは、
パスを指定する方法なので、一度ファイルを書き込まないと、
ファイルを開く事ができません。
ファイルのサイズが小さければ支障ないのですが、
大きな物だと時間的に遅くなってしまいます。

それに、仮ファイルを作る為にそのファイルを削除する
手間などが発生してしまいます。

ファイルの解凍では、ストリームを使っているので
ストリームを直接開く方法などがあると便利なのですが、
そのような方法はあるのでしょうか?
ストリームではなくてバイト配列でも問題ありません。

よろしくお願いします。

編集 削除
魔界の仮面弁士  2005-08-08 20:40:05  No: 124009  IP: [192.*.*.*]

> ストリームを直接開く方法などがあると便利なのですが、

一般的な手法は無いと思います。……多分。

もしも、ストリームからの読み取りに対応しているソフトウェア
(たとえば、標準入力からの入力に対応しているものなど)であれば
可能かも知れませんが、ファイルからの読み取りにしか対応していない
ソフトウェア(たとえば、メモ帳等)であれば不可能なのでは。

編集 削除
牙竜  2005-08-09 11:17:21  No: 124010  IP: [192.*.*.*]

パス指定ではないファイルを開く方法ないのですかね?

よく、解凍ソフトで解凍せずにファイルを開いている
ソフトがあるのですが、言語が違うから可能なのですかね?

編集 削除
ひろ  2005-08-09 12:44:13  No: 124011  IP: [192.*.*.*]

ファイル実体がないストリームというと名前付きパイプぐらいしか思いつきませんが・・・

解凍せずにファイルを開いているように見えるのは、実際には作業フォルダに解凍しているだけのことが多いです。

編集 削除
名無し  2005-08-09 14:16:27  No: 124012  IP: [192.*.*.*]

言語が違うのではなく考え方が違う

編集 削除
牙竜  2005-08-09 17:05:51  No: 124013  IP: [192.*.*.*]

名無しさん、作業フォルダに解凍する方法は、
最初の書き込みで書いてあるように、すでに考慮した上です。
その上で、もっといいものが出来ないかな?と思っていました。

それ以外で考え方が違うという発言が出来るのなら、
作業フォルダに解凍しない方法があるのですか?

まあ、考え方が違う、という発言はおおいに参考になりました。
ストリームを直接開く方法は思いついたので、
これで解決にします。

ある程度、条件が限られますが、出来ました。
後は、ソースを検討して、もっといい物にするだけです。

編集 削除