Página 1 de 1

Ver Diretorio

Enviado: 21 Jan 2009 15:05
por negrao
Mocada, como faco pra verificar se um diretorio Existe, tipo
C:\TESTE\
se tiver blz , caso contrario , vou dar uma mensagem

Obrigado

Re: Ver Diretorio

Enviado: 21 Jan 2009 15:27
por sygecom
Utilizando a CA-TOOLS

Código: Selecionar todos

IF DIRCHANGE("\DADOS") == -3
   ALERT("NÃO FOI POSSIVEL ACHAR O DIRETORIO")
ENDIF

Re: Ver Diretorio

Enviado: 22 Jan 2009 00:37
por Adalberto
negrao,

Utilizando Clipper puro, pode testar esse exemplo:

Código: Selecionar todos

LOCAL acTabla:= DIRECTORY( ( “D:\*.*” ) , “D” ) // D = Diretorio
LOCAL lTem	  := .F.
LOCAL nI
FOR  nI	:= 1 TO LEN( acTabla )
	cNombre	:= ALLTRIM( acTabla[ nI , 1 ] )
	IF ( cNombre == “TESTE” ) // O qualquer outro diretório
		lTem	:= .T.
		EXIT
	ENDIF
NEXT nI
IF lTem
	ALERT( “O diretório existe” )
   ELSE
	ALERT( “O diretório não existe” )
ENDIF
Um grande abraço.

Re: Ver Diretorio

Enviado: 22 Jan 2009 08:55
por Toledo
Outro exemplo:

Código: Selecionar todos

aDir:=DIRECTORY("C:\TESTE.","D")
IF LEN(aDir)>0
  ALERT("Diretório existe...")
ELSE
  ALERT("Diretório NAO existe...")
ENDIF
Abraços,

Re: Ver Diretorio

Enviado: 22 Jan 2009 12:24
por Adalberto
Toledo, bom día.

Fiz testes com o programa que eu postei e com o programa que você postou; ambos reportam como EXISTENTE um diretório que nau existe se na pasta mãe tem um arquivo com nome semelhante:

Exemplo:

Código: Selecionar todos

C:\ TESTE // arquivo
	TESTE1           // Pasta
	WINDOWS      // pasta
Nosso exemplo diz que EXISTE o diretório TESTE
Por tanto modifiquei o meu e ficou assim e deu certo.

Código: Selecionar todos

LOCAL acDir	:= DIRECTORY( ( "C:\*.*" ) , "D" )
LOCAL lTem	:= .F. , nI , nLen := LEN( acDir ) , cNomeDir
FOR  nI	:= 1 TO LEN( acDir )
	cNomeDir	:= ALLTRIM( acDir[ nI , 1 ] )
	IF ( ( cNomeDir == 'TESTE' ) .AND. ( acDir[ nI , 5 ] == 'D' ) )  // D=diretorio
		lTem	:= .T.
		EXIT
	ENDIF
NEXT nI
IF lTem		// Existe la carpeta buscada
	ALERT(  'EXISTE' )
   ELSE
	ALERT ( 'NAO EXISTE' )
ENDIF
RETURN NIL
Um grande abraço

Re: Ver Diretorio

Enviado: 22 Jan 2009 18:43
por Toledo
Realmente, fiz um teste agora... mas no meu exemplo é só alterar a seguinte linha:

Altere:

Código: Selecionar todos

aDir:=DIRECTORY("C:\TESTE.","D")
troque por:

Código: Selecionar todos

aDir:=DIRECTORY("C:\TESTE\*.","D")
Abraços,

Re: Ver Diretorio

Enviado: 22 Jan 2009 18:59
por alxsts
Olá amigos. Tenham todos um excelente 2009!

Creio que a forma mais simples e rápida para se verificar a existencia de uma pasta é usando a funcão File(), como no exemplo abaixo:

Código: Selecionar todos

IF ! File( "Teste\*.*" )  // é necessário colocar o \*.* após o nome da pasta
   Alert( "Pasta não encontrada!" ) 
ENDIF
[]s
AlxSts

Re: Ver Diretorio

Enviado: 22 Jan 2009 19:12
por Adalberto
Amigos do fórum

Vejam só as diferentes formas de solucionar um mesmo problema, mais é melhor se olham para a vontade expressada em compartilhar conhecimentos; isso mesmo é o me agrada deste foro, aqui aprendo e se posso ajudo (com meus humildes conhecimentos).

Brigado Toledo, alxsts, e claro que sim, obrigado a todos vocês.

Um grande abraço.

Re: Ver Diretorio

Enviado: 22 Jan 2009 19:44
por alxsts
Este é o objetivo principal!

Grato pelo incentivo.

[]s
AlxSts

Ver Diretorio se existe

Enviado: 06 Mai 2009 11:41
por Pablo César
Só fazendo um complemento a esta indicação do colega:
alxsts escreveu:Creio que a forma mais simples e rápida para se verificar a existencia de uma pasta é usando a funcão File(), como no exemplo abaixo:

Código: Selecionar todos

    IF ! File( "Teste\*.*" )  // é necessário colocar o \*.* após o nome da pasta
       Alert( "Pasta não encontrada!" )
    ENDIF
Só irá funcionar corretamente, apartir do momento que exista ao menos um arquivo nesse diretório. Se o diretório acabou de ser criado e não contém nenhum arquivo dentro dele, irá dar como inexistente. O que não corresponderia, pois uma pasta ou diretório não deixa de ser "um arquivo" (com caracteristicas diferentes, mas no final é um arquivo) veja conceito no Wikipédia. Portanto a forma mais segura é a indicação do Toledo:

Código: Selecionar todos

aDir:=DIRECTORY("C:\TESTE\*.","D")
IF LEN(aDir)>0
  ALERT("Diretório existe...")
ELSE
  ALERT("Diretório NAO existe...")
ENDIF
Parece redundante mas funciona ! E muitas vezes é necessária essa verificação. Talvez existam várias funções de LIBs externas que dêm o mesmo resultado. Outra coisa que devemos observar é que o nome da pasta esteja no formato 8.3, isto é: NOME CURTO.

Re: Ver Diretorio

Enviado: 06 Jun 2009 15:13
por alxsts
Olá!

É verdade Pablo... voce está certo!

[]á
AlxSts