Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcopmf

Copiar ficheiros/pastas

Recommended Posts

Boas...

Tenho uma duvida.

Eu para copiar um ficheiro de um destino para outro uso "Filecopy ficheiro_origem,ficheiro_destino"

E qual o codigo que uso se eu quiser copiar uma pasta?

Sera que me podem ajudar?

 

Obrigado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

use FileSystemObject

só referenciar Microsoft Scripting Runtime

 

e usar:

 

Dim file As FileListBox

Set file = New FileSystemObject

 

File.CopyFolder(Source as String, Destination as String)

Compartilhar este post


Link para o post
Compartilhar em outros sites

use FileSystemObjectsó referenciar Microsoft Scripting Runtimee usar:Dim file As FileListBoxSet file = New FileSystemObjectFile.CopyFolder(Source as String, Destination as String)

Vejam se encontram o erro?(sou novato, pesso desculpa)"Microsoft Scripting Runtime ja esta referenciado"Private Sub Command1_Click() Dim file As FileListBox Set file = New FileSystemObject file.CopyFolder(Source, Destination) Source = "C:\Documents and Settings\Cialfa\Ambiente de trabalho\a\" Destination = "C:\Documents and Settings\Cialfa\Ambiente de trabalho\down\"End SubO erro é na linha "file.CopyFolder(Source, Destination)" syntaxe error

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro de sintaxe é devido aos parênteses. Não se tem parênteses neste caso. Todavia, vai dar outro erro porque você diz que file é do tipo FileListBox e depois joga um FileSystemObject nele, o que não tem nada haver. Exeperimente o seguinte aí:

 

Dim f As New FileSystemObjectSource = "C:\Documents and Settings\Cialfa\Ambiente de trabalho\a"Destination = "C:\Documents and Settings\Cialfa\Ambiente de trabalho\down"f.CopyFolder Source, Destination

Certo? ;)

 

Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Graymalkin, você deve saber mais do que eu, mas só uma duvida

eu sempre aprendi ate nos tutoriais do Macoratti que nao se deve declarar e estanciar a variavel ao mesmo tempo do jeito que você fez acima

 

e no site Silicio tbm tem um tutorial que fala a respeito

Instanciando Objetos Corretamente

 

acredito que o erro do usuario era só porque ele declarou a variavel file como FileListBox em vez da FileSystemObject

e os parentes ou ele tira ou usa o call na frente como exemplo abaixo

 

valeu e desculpe alguma coisa

t+

 

marcopmf se quiser testar esse exemplo eu corrigi sua declaração:

Dim file As FileSystemObject

Set file = New FileSystemObject

Dim Source As String

Dim Destination As String

 

Source = "C:\Documents and Settings\Cialfa\Ambiente de trabalho\a"

Destination = "C:\Documents and Settings\Cialfa\Ambiente de trabalho\down\"

 

Call file.CopyFolder(Source, Destination)

 

obs: existe um 3 parametro file.CopyFolder(Source as String, Destination as String, OverWriteFiles as Boolean)

se deixar true ele sobrescreve se ja existir os arquivos

Compartilhar este post


Link para o post
Compartilhar em outros sites

É possivel eu executar este codigo(programa) sempre que me conecto ao meu telemovel, via usb???Meu telemovel é o nokia 6630Pff, respondamObrigado!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Graymalkin, você deve saber mais do que eu, mas só uma duvida

eu sempre aprendi ate nos tutoriais do Macoratti que nao se deve declarar e estanciar a variavel ao mesmo tempo do jeito que você fez acima

 

e no site Silicio tbm tem um tutorial que fala a respeito

Instanciando Objetos Corretamente

Sim, eu já tinha visto isso. Porém, tenho cá minhas dúvidas sobre se o objeto é realmente instanciado quando se utiliza uma propriedade dele da forma como eu declaro. Veja o exemplo abaixo:

 

Dim c1 As New Collection	MsgBox "O objeto é nulo? Resposta: " & (c1 Is Nothing)		Dim c2 As Collection	MsgBox "O objeto é nulo? Resposta: " & (c2 Is Nothing)
Note que não utilizei propriedade ou método algum de c1 e, no entanto, o objeto *está* instanciado. Quanto a definir ele como Nothing, realmente não funciona quando se instancia na declaração, mas qual a necessidade de fazer isso? Um objeto declarado dentro de um procedimento só existe durante a execução do procedimento, e perde sua referência ao término deste. E, o coleto de lixo automático deve destruir o objeto quando o mesmo perde escopo. Portanto, não é preciso realmente definir ele como Nothing. E nunca tive problemas de "falta" de memória ou lentidão por causa disso, até hoje.

Mas, a principal razão pela qual eu declaro tudo em uma linha só é que... bem, fica tudo em *uma* linha só mesmo! :D

 

Mesmo assim, foi interessante a sua observação! :)

 

É possivel eu executar este codigo(programa) sempre que me conecto ao meu telemovel, via usb???

Meu telemovel é o nokia 6630

Ao conectar teu telemovel, é criada uma unidade para ele (D:, E:, F:, etc.)? Se for, tu podes ficar a verificar a existência da mesma com a função Dir() (quando ela retornar algum ficheiro ou pasta é porque a unidade existe).

 

Abraços,

 

Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.