Aqui eu fa�o dessa forma, e funciona bem...

 

 

Function: fCompararDir

����������� Description:

����������� Returns

����������������������� Boolean:

����������� Parameters

����������������������� String: sp_DirOrigem

����������������������� String: sp_DirDestino

����������� Static Variables

����������� Local variables

����������������������� Number: nIndice

����������������������� Number: nRetorno

����������������������� Number: nCount

����������������������� String: sDirAux_O

����������������������� String: sDirAux_D

����������������������� !

����������������������� String: sVt_DirOrigem[*]

����������������������� Date/Time: dVt_DirOrigem[*]

����������������������� Number: nVt_DirOrigem[*]

����������� Actions

����������������������� Call SalFileCreateDirectory( sp_DirDestino )

����������������������� Call fCarregaCopia( sp_DirOrigem, sp_DirDestino )

����������������������� !

����������������������� Call VisArrayFillNumber( nVt_DirOrigem, NUMBER_Null, 5000 )

����������������������� Call VisArrayFillDateTime( dVt_DirOrigem, DATETIME_Null, 5000 )

����������������������� Call VisArrayFillString( sVt_DirOrigem, "", 5000 )

����������������������� !

����������������������� Set nRetorno = VisDosEnumDirInfo( sp_DirOrigem || "*.*", sVt_DirOrigem, dVt_DirOrigem, nVt_DirOrigem )

����������������������� Set nIndice = 0

����������������������� !

����������������������� While sVt_DirOrigem[ nIndice ] != ""

���������������������������������� Set sDirAux_O = sp_DirOrigem ||� sVt_DirOrigem[ nIndice ] || "\\"

���������������������������������� Set sDirAux_D = sp_DirDestino || sVt_DirOrigem[ nIndice ] || "\\"

���������������������������������� Call fCompararDir( sDirAux_O, sDirAux_D )

���������������������������������� Set nIndice = nIndice + 1

����������������������� !

����������������������� Return 1

Function: fCarregaCopia

����������� Description:

����������� Returns

����������������������� Boolean:

����������� Parameters

����������������������� String: sp_DirOrigem

����������������������� String: sp_DirDestino

����������� Static Variables

����������� Local variables

����������������������� String: sVt_ArqOrigem[*]

����������������������� Number: nVt_ArqOrigemTam[*]

����������������������� Date/Time: dVt_ArqOrigem[*]

����������������������� Number: nVt_ArqOrigemAtrib[*]

����������������������� !

����������������������� String: sVt_ArqDestino[*]

����������������������� Number: nVt_ArqDestinoTam[*]

����������������������� Date/Time: dVt_ArqDestino[*]

����������������������� Number: nVt_ArqDestinoAtrib[*]

����������������������� !

����������������������� Number: nIndice

����������������������� Number: nRetorno

����������������������� Number: nLinha

����������������������� Number: nIndice2

����������������������� Number: nProcura

����������������������� Date/Time: dDtAux

����������������������� Window Handle: hWndAviso

����������� Actions

����������������������� !

����������������������� !

����������������������� Call VisArrayFillDateTime( dVt_ArqDestino, DATETIME_Null, 5000 )

����������������������� Call VisArrayFillDateTime( dVt_ArqOrigem, DATETIME_Null, 5000 )

����������������������� !

����������������������� Call VisArrayFillNumber( nVt_ArqDestinoTam, NUMBER_Null, 5000 )

����������������������� Call VisArrayFillNumber( nVt_ArqOrigemTam, NUMBER_Null, 5000 )

����������������������� !

����������������������� Call VisArrayFillNumber( nVt_ArqOrigemAtrib, NUMBER_Null, 5000 )

����������������������� Call VisArrayFillNumber( nVt_ArqDestinoAtrib, NUMBER_Null, 5000 )

����������������������� !

����������������������� Call VisArrayFillString( sVt_ArqDestino, "", 5000 )

����������������������� Call VisArrayFillString( sVt_ArqOrigem, "", 5000 )

����������������������� !

����������������������� Set nRetorno = VisDosEnumFileInfo( sp_DirDestino || "*.*", FA_Standard, sVt_ArqDestino, nVt_ArqDestinoTam, dVt_ArqDestino, nVt_ArqDestinoAtrib )

����������������������� Set nRetorno = VisDosEnumFileInfo( sp_DirOrigem� || "*.*", FA_Standard, sVt_ArqOrigem, nVt_ArqOrigemTam, dVt_ArqOrigem, nVt_ArqOrigemAtrib )

����������������������� !

����������������������� ! Carregando dados do Destino e ajustando a data do arquivo

����������������������� !

����������������������� Set nIndice = 0

����������������������� Set nLinha = TBL_MaxRow

����������������������� While sVt_ArqDestino[ nIndice ] != ""

���������������������������������� !

���������������������������������� Call SalFileGetDateTime( sp_DirDestino || sVt_ArqDestino[ nIndice ], dDtAux )

���������������������������������� !

���������������������������������� Set dVt_ArqDestino[ nIndice ] �� �= dDtAux

���������������������������������� Set nIndice ����������������� = nIndice + 1

����������������������� !

����������������������� ! Carregando dados da Origem, ajustando a data do arquivo e comparando arquivos

����������������������� !

����������������������� Set nLinha = TBL_MaxRow

����������������������� Set nIndice = 0

����������������������� While sVt_ArqOrigem[ nIndice ] != ""

���������������������������������� !

���������������������������������� Call SalFileGetDateTime( sp_DirOrigem || sVt_ArqOrigem[ nIndice ], dDtAux )

���������������������������������� !

���������������������������������� Set dVt_ArqOrigem[ nIndice ] ��� = dDtAux

���������������������������������� !

���������������������������������� Set nProcura = VisArrayFindString( sVt_ArqDestino, sVt_ArqOrigem[ nIndice ] )

���������������������������������� If ( nProcura < 0 ) �������� Or ������ ( ( nVt_ArqOrigemTam[ nIndice ] != nVt_ArqDestinoTam[ nProcura ] )

��������������������������������������������������������������������������������� And ���� ( dVt_ArqOrigem[ nIndice ] ������� �!= dVt_ArqDestino[ nProcura ] ) )

���������������������������������������������������������� ����������������������� Or ������ ( dVt_ArqOrigem[ nIndice ] ������� �> dVt_ArqDestino[ nProcura ] )

���������������������������������������������� Set hWndAviso = SalCreateWindow( dlgAviso, hWndForm, "Aguarde... Copiando arquivo " || sp_DirOrigem || sVt_ArqOrigem[ nIndice ] || " para " || sp_DirDestino || sVt_ArqOrigem[ nIndice ] )

���������������������������������������������� Call SalFileCopy( sp_DirOrigem || sVt_ArqOrigem[ nIndice ], sp_DirDestino || sVt_ArqOrigem[ nIndice ], 1 )

���������������������������������������������� Call SalFileSetDateTime( sp_DirDestino || sVt_ArqOrigem[ nIndice ], dVt_ArqOrigem[ nIndice ] )

���������������������������������������������� Call SalDestroyWindow( hWndAviso )

���������������������������������� !

����������� ����������������������� Set nIndice = nIndice + 1

����������������������� !

����������������������� ! Verifica se alguma arquivo do destino foi removido na origem.

���������������������������������������������� Caso afirmativo, remove do destimo.

����������������������� !

����������������������� Set nLinha = TBL_MaxRow

����������������������� Set nIndice = 0

����������������������� While sVt_ArqDestino[ nIndice ] != ""

���������������������������������� Set nProcura = VisArrayFindString( sVt_ArqOrigem, sVt_ArqDestino[ nIndice ] )

���������������������������������� If nProcura < 0

���������������������������������������������� Set hWndAviso = SalCreateWindow( dlgAviso, hWndForm, "Aguarde... Removendo o arquivo " || sp_DirOrigem || sVt_ArqDestino[ nIndice ] )

���������������������������������������������� Call VisFileDelete( sVt_ArqDestino[ nIndice ] )

���������������������������������������������� Call SalDestroyWindow( hWndAviso )

���������������������������������� !

���������������������������������� Set nIndice = nIndice + 1

����������������������� !

����������������������� Return 1

 

-----Mensagem original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Em nome de Vladimir - CPD
Enviada em: segunda-feira, 11 de abril de 2005 11:54
Para: [email protected]
Assunto: Re: [sqlwin] Erro no Comando VisDosEnumDirs

 

Eu estou fazendo uma rotina que compare os arquivos do servidor com os do cliente. Se a data do servidor for maior ele copia os arquivos. Mas estou com dificuldade em varrer todos os diret�rios e sub. Algu�m tem uma solu��o assim funcionando?

 

Obrigado pela ajuda

 

Vladimir

----- Original Message -----

Sent: Monday, April 11, 2005 10:57 AM

Subject: Re: [sqlwin] Erro no Comando VisDosEnumDirs

 

ah !

VisDosEnumDirs  retorna os diret�rios.

 

Use

Call VisDosEnumFiles( "\\\\maquina\\pasta\\*.*", FA_Standard, arrayArquivos )

para recuperar os arquivos.

 

Lairton.


 

On Apr 11, 2005 10:56 AM, Lairton J�nior <[EMAIL PROTECTED]> wrote:

Neste caso a sintaxe correta � VisDosEnumDirs ( "\\\\Servidor\\Diretorio\\*.*", FA_Standard, arrayArquivos )

 

On Apr 11, 2005 10:35 AM, Vladimir - CPD <[EMAIL PROTECTED]> wrote:

Ol� lista

eu quero recuperar os aquivos do servidor de rede ,

eu executo o comando VisDosEnumDirs ('\\Servidor\\Diretorio\\*.*', sDirs)

mas ele n�o retorna nada. Sei que funciona se a unidade estiver mapeada, mas n�o � nada conveniente no meu caso.

 

Como resolver esse problema?

 

Vladimir





--

Lairton N de Almeida Jr.
[EMAIL PROTECTED]




--

Lairton N de Almeida Jr.
[EMAIL PROTECTED]


No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.308 / Virus Database: 266.9.6 - Release Date: 11/04/2005

Responder a