Solved

Filecopy

Posted on 2004-03-29
22
2,338 Views
Last Modified: 2010-08-05
Hi everyone
I use vb6 and the filecopy statement to copy a zipped mdb file over isdn routers.
Are there any faster filecopy functions available in vb6 , I know there are possibilities to copy faster when I have windows programs that copy the same file in half the time. Is it also possible to get a event triggered to se how much of the file has been copied so I can make a progressbar for that spesifict file??

0
Comment
Question by:haggmar
  • 10
  • 9
22 Comments
 
LVL 19

Expert Comment

by:Melih SARICA
ID: 10702413
if u wanna use ur own progress bar u must copy ur file with codes... block by block

u can use Ftp upload or u can use Internet functions to get or put files to other Computers...

o can read file in to a stream  adn write it to the target locatiion .. and u can control the progress...

0
 

Author Comment

by:haggmar
ID: 10702455
ftp is not an option because this is not over the internet This is a Headquarter that distributes prices and information to all its stores. the stores do not have a webserver so i only ping the stores and copy the files over via intranet

I need som sample code


0
 
LVL 19

Expert Comment

by:Melih SARICA
ID: 10702621

Ok .. then

create a file copy Procedure
  in procedure
  load ur source file in to a file stream ..
  and pump  ur source in to a target file stream ..
  tagret file stream must  be created in target folder..
   
  u can pump ur stream in small amounts of data .. and u can set ur progress bar while pumping data ..

  each time u pump .. increase the value of the progress bar

 u can use scripting.filesystemobject
0
 

Author Comment

by:haggmar
ID: 10702663
ok do tou have any sample code for this, i have never uses the scripting.filesystemobject before
0
 
LVL 19

Expert Comment

by:Melih SARICA
ID: 10702763

here is a brief example
   
Dim msourObj As New Scripting.FileSystemObject
Dim mtargObj As New Scripting.FileSystemObject

Dim msourceFile As TextStream
Dim mtargetFile As TextStream


Set msourceFile = msourObj.OpenTextFile("c:\try.txt", ForReading, False)
Set mtargetFile = msourObj.CreateTextFile("\\192.168.33.11\c$\trycopy.txt", True, false)

counter = 0
While Not msourceFile.AtEndOfStream
   
   mtargetFile.WriteLine (msourceFile.ReadLine)
   counter = counter + 1
   MsgBox (Str(counter))
Wend

 
0
 

Author Comment

by:haggmar
ID: 10702808
hmmmm
will this only work for text files??

i am copying textfiles and zipfiles

0
 
LVL 19

Expert Comment

by:Melih SARICA
ID: 10702833
Try 4 zip files...  if it doesnt work 4 zip files.. use standart VB openfile command for them
read in binary mode..
and write to a source file in binary mode again

0
 

Author Comment

by:haggmar
ID: 10702851
ok
u have sample code for that?
0
 
LVL 19

Expert Comment

by:Melih SARICA
ID: 10703104
Dim tempvar(2048) As Byte
Open "c:\try.rar" For Binary As #1
Open "\\192.168.33.11\c$\try.rar" For Binary As #2
counter = 0
filelength = LOF(1)
dsize = CInt(filelength / 2048) - 1
For cnt = 1 To dszie
 Get #1, 2048, tempvar
 Put #2, , tempvar
 counter = counter + 1
 Next cnt
remainder = CLng(LOF(1) - (CLng((filelength / 2048) - 1) * 2048))
Get #1, remainder, tempvar
Put #2, remainder, tempvar

Close #1
Close #2
0
 

Author Comment

by:haggmar
ID: 10703200
doesnt work
the zipfile is corrupted after copying with this function
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 9

Expert Comment

by:bhagyesht
ID: 10703506
without a progress bar
"cmd.exe /c copy <source filename with path> <destination file name>
Bhagyesh Trivedi
0
 
LVL 19

Expert Comment

by:Melih SARICA
ID: 10703511

i did not try it..
   change this  part

remainder = CLng(LOF(1) - (CLng((filelength / 2048) - 1) * 2048))
Get #1, remainder, tempvar
Put #2, , tempvar



0
 

Author Comment

by:haggmar
ID: 10703602
sorry
still the same error when opening the zipfile after copying

cannot open file: it does not appear to be a valid archive. If you downloaded this file, try downloading the file again.

the sourcefile work just fine

0
 
LVL 19

Expert Comment

by:Melih SARICA
ID: 10703744

In this Code error  is  at the end..
try this instead

remainder = CLng(LOF(1) - (CLng((filelength / 2048) - 1) * 2048))
dim tmpdata(remainder)

  Get #1, remainder, tmpdata
  Put #2, , tmpdata
0
 

Author Comment

by:haggmar
ID: 10703868
same error occured ;(
but i had to change your code
as you wrote it it is wrong vb 6 syntax


I wrote dim tmpData() as byte
redim(tmpdata(remainder))

get #1, remainder, tmpdata
put #2, , tmpdata

any more ideas?

0
 
LVL 19

Expert Comment

by:Melih SARICA
ID: 10703871
I ve tried this code .. and it works fine


Dim tempvar(2048) As Byte
Open "c:\try.rar" For Binary As #1
Open "\\192.168.33.11\c$\try.rar" For Binary As #2
counter = 0
filelength = LOF(1)
cnt = 0
dsize = CInt(filelength / 2048) - 1
For cnt = 1 To dsize
 Get #1, , tempvar
 Put #2, , tempvar
 counter = counter + 1
 Next cnt
remainder = CLng(LOF(1) - (CLng((filelength / 2048) - 1) * 2048))
Get #1, , tempvar
Put #2, , tempvar

Close #1
Close #2
0
 

Author Comment

by:haggmar
ID: 10703931
well the same code doesnt work for me
have you tried it on a .zip file and not a .rar file?

or any other ways of doing this?
0
 
LVL 19

Accepted Solution

by:
Melih SARICA earned 250 total points
ID: 10703979
This Code works even while copying  exe files..

And i did try it.. in Ms Acces, Excell and Vb...
U use y copy paste the code correctly

***************************
Dim tempvar(2048) As Byte
Open "c:\try.zip" For Binary As #1
Open "\\192.168.33.11\c$\try.zip" For Binary As #2
counter = 0
filelength = LOF(1)
cnt = 0
dsize = CInt(filelength / 2048) - 1
For cnt = 1 To dsize
 Get #1, , tempvar
 Put #2, , tempvar
 counter = counter + 1
 Next cnt
remainder = CLng(LOF(1) - (CLng((filelength / 2048) - 1) * 2048))
Get #1, , tempvar
Put #2, , tempvar

Close #1
Close #2
*****************
0
 

Author Comment

by:haggmar
ID: 10704042
hmmmm
very strange
i tried it on a exefile and it worked fine
but not on my zip files

any ideas why??
0
 
LVL 19

Expert Comment

by:Melih SARICA
ID: 10704107
try with an other zip file..

As u see its not deleting the Target zip file..

If there is a file with the same name.. &#305;ts appends the old file in the target path. adding source file at the edn of target file..

Delete target file first and then copy source file




0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Here we come across an interesting topic of coding guidelines while designing automation test scripts. The scope of this article will not be limited to QTP but to an overall extent of using VB Scripting for automation projects. Introduction Now…
Does the idea of dealing with bits scare or confuse you? Does it seem like a waste of time in an age where we all have terabytes of storage? If so, you're missing out on one of the core tools in every professional programmer's toolbox. Learn how to …
An introduction to basic programming syntax in Java by creating a simple program. Viewers can follow the tutorial as they create their first class in Java. Definitions and explanations about each element are given to help prepare viewers for future …
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

914 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now