|
|
|
|
|
Dicas
|
|
Visual Basic (Arquivos/Diretórios)
|
|
|
Título da Dica: Copiando Arquivos
|
|
|
|
Postada em 8/10/2000 por Webmaster
webmaster@vbweb.com.br
Copiando Arquivos Através de Comandos do VB:
'O comando p/ copiar arquivos é o FileCopy. 'Sintaxe: FileCopy ArquivoOrigem, DiretórioDestino
'Exemplo: FileCopy "C:\Desenho.BMP", "C:\Windows\"
'Você também pode copiar este arquivo (p/ o mesmo, ou 'outro diretório) mudando o nome deste arquivo. Exemplo: FileCopy "C:\Desenho.BMP", "C:\Windows\Imagem.BMP"
Copiando Arquivos Através de API:
'O problema do FileCopy do VB é q ele não mostra visualmente a 'operação (barra de progresso e etc) com no Explorer. Ao invés 'de copiar arquivos com o FileCopy, use a rotina API abaixo:
'Num módulo: Option Explicit Public Declare Function SHFileOperation Lib "shell32.dll" _ Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) _ As Long
Public Const FO_COPY As Long = &H2 Public Const FOF_ALLOWUNDO As Long = &H40
Public Type SHFILEOPSTRUCT hWnd As Long wFunc As Long pFrom As String pTo As String fFlags As Integer fAnyOperationsAborted As Boolean hNameMappings As Long lpszProgressTitle As String End Type
Public Sub CopiarArq(Origem As String, Destino As String) Dim RST As Long Dim FLOP As SHFILEOPSTRUCT
FLOP.hWnd = 0 FLOP.wFunc = FO_COPY
'Arquivo de origem: FLOP.pFrom = Origem & vbNullChar & vbNullChar
'Para copiar TODOS os arquivos, use: 'FLOP.pFrom = "C:\*.*" & vbNullChar & vbNullChar
'Diretório ou arquivo de destino: FLOP.pTo = Destino & vbNullChar & vbNullChar
FLOP.fFlags = FOF_ALLOWUNDO RST = SHFileOperation(FLOP) If RST <> 0 Then 'Erro na cópia MsgBox Err.LastDllError, vbCritical Or vbOKOnly Else If FLOP.fAnyOperationsAborted <> 0 Then MsgBox "Falha na cópia!!!", vbCritical Or vbOKOnly End If End If End Sub
'P/ copiar um arquivo, execute a rotina: CopiarArq ArquivoOrigem, DiretórioDestino
'Por exemplo: CopiarArq "C:\Desenho.BMP", "C:\Windows\" 'Ou: CopiarArq "C:\Desenho.BMP", "C:\Windows\Imagem.BMP"
|
|
|
|
|