tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルWindowsXP標準機能でのZip作成について
記事No8359
投稿日: 2008/10/22(Wed) 20:44
投稿者おまる
現在WindowsXP以降のOSで入っているZipの解凍、圧縮、リストアップ機能を使用して
VB2005で動作するクラスを作成しています。
しかし、下記のコードでコピーを行ったのですがd=のところでエラーになります。
中身を見るとaにNameSpaceが無いように感じます。
b=のところでbに値が設定されていませんので。(vb6では同じ書き方でセットされています)
対策をお願いします。もう1週間悩んでいます。
Dim a as Object
Dim b as Object
a = CreateObject("Shell.Application")
b = a.NameSpace("C:\Test\test.zip")
c = objShell.NameSpace("C:\Test\test")
d = c.ParseName("test.txt")
b.CopyHere(d)

[ツリー表示へ]
タイトルRe: WindowsXP標準機能でのZip作成について
記事No8360
投稿日: 2008/10/22(Wed) 21:15
投稿者花ちゃん
>もう1週間悩んでいます。
何週間悩もうが何もしなければ同じ事ですよ
(ここへも今こられただけのようだし、過去1週間訪問無し)

>(vb6では同じ書き方でセットされています)
そんな訳ないでしょう。
>c = objShell.NameSpace("C:\Test\test")
objShell はどこからでてきたの?

・質問される前に[当サイト内外の検索]を使って下調べをされましたか?
と投稿画面にも書いていませんでしたか?
--------------------------------------------------------------------------------
ちょっと便利な検索ソフト(http://hanatyan.sakura.ne.jp/yybbs/read.cgi?no=117)
を使って、キーワード【VB.NET Zipの解凍】での検索結果(当サイト内・外の検索でも同じ)

  ヒット件数    検索対象サイト名    検索結果のURL(短く変換しています)
             73 件  DOBON.NET                  http://tinyurl.com/6obhh2
             25 件  わんくま同盟               http://tinyurl.com/5kllxa
             14 件  アットマーク・アイティ     http://tinyurl.com/5na5ld
             11 件  Programing Library         http://tinyurl.com/6jul3u
              3 件  ★VBレスキュー(花ちゃん)   http://tinyurl.com/6z59bs
              1 件  Visual Basic 中学校        http://tinyurl.com/6mj5px
              1 件  moug モーグ                http://tinyurl.com/5fbzo4
--------------------------------------------------------------------------------

ファイルのコピーが目的なら、File.Copy メソッドでは、だめなのですか?

[ツリー表示へ]
タイトルRe^2: WindowsXP標準機能でのZip作成について
記事No8362
投稿日: 2008/10/22(Wed) 23:03
投稿者おまる
> >もう1週間悩んでいます。
> 何週間悩もうが何もしなければ同じ事ですよ
> (ここへも今こられただけのようだし、過去1週間訪問無し)
会社のPCから見ていますので。会社は書き込みNGなもので

> >(vb6では同じ書き方でセットされています)
> そんな訳ないでしょう。
いえ、setが抜けたくらいです。vb6とvb2005のウイッチで見ています。

> >c = objShell.NameSpace("C:\Test\test")
> objShell はどこからでてきたの?
aの間違いです。すいません。

> ・質問される前に[当サイト内外の検索]を使って下調べをされましたか?
> と投稿画面にも書いていませんでしたか?
googleで検索しています。
javaを使うや、VBSや、コマンドライン(なぜか解凍ソフトが立ち上がり断念)等試しています
c =の所でVB6の結果と異なるのでShell.Applicationを中心に検索しています。

> ファイルのコピーが目的なら、File.Copy メソッドでは、だめなのですか?
エラー無く倉庫が壊れてしまいます。(コピー元ファイルになります。)

[ツリー表示へ]
タイトル【10/24 修正】WindowsXP標準機能でのZip作成について
記事No8364
投稿日: 2008/10/23(Thu) 07:25
投稿者花ちゃん
> > >c = objShell.NameSpace("C:\Test\test")
> > objShell はどこからでてきたの?

> aの間違いです。すいません。

そこだけではないでしょう、これだけのコードで4ヶ所程間違っていたら...。
(私は、投稿された文からしか貴方を判断できないので)

>いえ、setが抜けたくらいです。vb6とvb2005のウイッチで見ています。
VB6.0 で動くなら、投稿されたコードそのままでset を付けて動かして見て下さい。
多分同じエラーがでるはずです。

そもそもどのようなエラーがでているかも書いていないし、VB6.0 とVB2005 の
実行環境は、同一環境での話なのですか?
上記コードに於けるファイル類(フォルダ含む)の前提条件はどのようになって
いるのかは、これを見ている人には解らないし。(どこまで信用できるのかも)
VB6.0 で動作確認したコードをそのままペーストしたら自動的に修正されて問題なく
動作するはずですが。(投稿されたコードの部分だけなら)

下記を試した限りでは、C:\Test\test.zip 内に C:\Test\test\test.txt ファイルが
圧縮されましたが。

Private Sub Button1_Click(ByVal sender As System.Object, _
                  ByVal e As System.EventArgs) Handles Button1.Click
   Dim a As Object
   Dim b As Object
   Dim c As Object
   Dim d As Object
   a = CreateObject("Shell.Application")
   b = a.NameSpace("C:\Test\test.zip")
   c = a.NameSpace("C:\Test\test")
   d = c.ParseName("test.txt")
   b.CopyHere(d)
End Sub

動作確認環境
WindowsXP VB2005 IE7.0
Windows Vista VB2008 IE7.0

但し、上記コードは、投稿されたコードを試しただけなので、そのままでは実使用は
Marshal.ReleaseComObject での解放処理ができていませんので、動作の保証はできません。

# 1週間悩んでいて質問した割には、前回同様、解決できれば返事無しですか?(10/24 7:20)

[ツリー表示へ]