Ver Diretorio

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

negrao
Usuário Nível 3
Usuário Nível 3
Mensagens: 186
Registrado em: 06 Jul 2004 08:38

Ver Diretorio

Mensagem por negrao »

Mocada, como faco pra verificar se um diretorio Existe, tipo
C:\TESTE\
se tiver blz , caso contrario , vou dar uma mensagem

Obrigado
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Ver Diretorio

Mensagem por sygecom »

Utilizando a CA-TOOLS

Código: Selecionar todos

IF DIRCHANGE("\DADOS") == -3
   ALERT("NÃO FOI POSSIVEL ACHAR O DIRETORIO")
ENDIF
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

Re: Ver Diretorio

Mensagem 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.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Ver Diretorio

Mensagem 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,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

Re: Ver Diretorio

Mensagem 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
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Ver Diretorio

Mensagem 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,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Ver Diretorio

Mensagem 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
[]´s
Alexandre Santos (AlxSts)
Adalberto
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 01 Set 2007 01:09
Localização: Santa Cruz de la Sierra - Bolivia

Re: Ver Diretorio

Mensagem 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.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Ver Diretorio

Mensagem por alxsts »

Este é o objetivo principal!

Grato pelo incentivo.

[]s
AlxSts
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Ver Diretorio se existe

Mensagem 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.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Ver Diretorio

Mensagem por alxsts »

Olá!

É verdade Pablo... voce está certo!

[]á
AlxSts
[]´s
Alexandre Santos (AlxSts)
Responder