圧縮について 初心者です。


みかん  2007-04-04 00:04:58  No: 98471

VB6.0でファイルを圧縮して違うファイルにコピーするような事はできるでしょうか??


魔界の仮面弁士  2007-04-04 00:23:13  No: 98472

LHA 圧縮などを求めるのであれば、unlha32.dll 等の
外部コンポーネントを使うことになるでしょう。

また、運用ベースの回避で良いのであれば、フォルダを右クリックして
属性の[詳細設定]ボタンを押せば、圧縮属性を持ったフォルダを
作成できます。(WinXPの場合)

で、圧縮属性を持ったフォルダに対して書き込み/コピーすれば、
ファイルは自動的に圧縮されますので、それで回避するとか。


Ac  2007-04-04 00:23:19  No: 98473

たぶんこのURLを参考にすればできると思いますよ。

http://www.asahi-net.or.jp/~ef2o-inue/download/sub09_020_060.html


みかん  2007-04-04 00:29:43  No: 98474

早速のありがとうございます。
やはり可能なんですね。
zipコマンドをどうかずるんですか??


もげ  2007-04-04 01:47:07  No: 98475

zip圧縮であれば、こちらで。
http://www.asahi-net.or.jp/~ef2o-inue/download/sub09_020_065.html

いちいちタイトルに「初心者」ってつけるなら、初心者掲示板もありますが。
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi


  2007-04-04 04:24:50  No: 98476

>いちいちタイトルに「初心者」ってつけるなら、初心者掲示板もありますが。

いや、初心者掲示板にも気がつかないところから、
本当に初心者なんだな〜と、初心者らしさが現れているじゃないですか。


みかん  2007-04-04 19:26:15  No: 98477

アドバイスありがとうございます。
ネットや参考書を参考に作ってみたのですが、何か違うみたいなので
教えて下さい。

BBとDDのファイルを圧縮してAにコピーしたいです。

Private Sub Form_Load()
Dim scfilepath As String
     Dim destfilepath As String
     Dim filename As String
     Dim strcmd As String
     Dim strDir As String
     Dim fso As New FileSystemObject
     Dim i As String

     scfilepath = SourceFilePath
     destfilepath = "C:\A"

'        'フォルダが存在すれば削除する。
'    If fso.FolderExists(destfilepath) Then
'    fso = DeleteFolder(destfilepath, True)
'    End If

     filename = "C:\BB" & "C:\DD" & ".zip"

'    'ファイルが存在すれば削除する。
'        If fso.FileExists(filename) Then
'           fso = DeleteFile(filename, True)
'        End If

        '機材VSSをローカルコピーする。
        fso = Copy.Folder(scfilepath, destfilepath)

        ''圧縮
        strcmd = "zip -r " & filename & " " & destfilepath
        i = Shell(strcmd, AppWinStyle.Hide, True)

      If fso.FileExists(filename) Then
fso = CopyFile(filename, SourceBackupFilePath & "\" &A&sDATE& ".zip")
        End If
End Sub


通ってみた  2007-04-04 19:35:22  No: 98478

んー・・・
「zip」という拡張子のない実行形式ファイルに処理を丸投げするコードのようです
これではまず動かないかと

Winzip32.DLL辺りを組み込んで自前で処理するようにしましょう


もげ  2007-04-05 19:16:54  No: 98479

'OJTL100.XLSってファイル名から、OJT中なのかと思っていましたが、
'周囲の誰にも聞かずにネットに頼るのはOJTといえません。
'ちょっと周りの人にコードを見てもらってください。
'それとも放置されてる?

> Dim fso As New FileSystemObject
>        fso = Copy.Folder(scfilepath, destfilepath)

コンパイルエラーになっていませんか?

>     filename = "C:\BB" & "C:\DD" & ".zip"

Debug.Print filename
Debug.Print strcmd
として、イミディエイトウィンドウを確認しましょう。

おかしいと思ったらブレークポイントを置いて1行づつデバッグしましょう。

>     Dim i As String
>       i = Shell(strcmd, AppWinStyle.Hide, True)

戻り値が変ですし、AppWinStyleはVB6じゃなかったかと(.NETでは?)。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加