Verificar se O Diretorio Existe

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Rogerio_SG
Usuário Nível 1
Usuário Nível 1
Mensagens: 36
Registrado em: 23 Nov 2004 16:40

Verificar se O Diretorio Existe

Mensagem por Rogerio_SG »

Ola Pessoal;

Alguem pode me ajudar a resolver uma problema aqui, quero verificar a existencia de um diretorio no linux.

A funcao da CA-Tools ISDIR(), funciona no MSDOS, porem qdo compilo o programa com xharbour para ser usado no linux da pau..

Agradeco desde ja.

Rogerio
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Prezado Colega

Já tentou a DIRCHANGE() da ClipperTools ?

Se você conseguir mudar para o diretório é porque existe, senão, não existe.

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Rogerio_SG
Usuário Nível 1
Usuário Nível 1
Mensagens: 36
Registrado em: 23 Nov 2004 16:40

Mensagem por Rogerio_SG »

Caro Colega.

A funcao nao funciona no linux, ja utilzei a mesma porem nao funciona e ate perde o caminho que estava antes.


Rogerio
evolver
Membro Master
Membro Master
Mensagens: 189
Registrado em: 28 Ago 2004 01:02
Localização: Cruz Alta - RS
Contato:

Mensagem por evolver »

infelizmente ainda pra linux o suporte é muito fraco.

Tente o seguinte

Código: Selecionar todos

run ls nome_do_dir > ls.txt
v_ls=memoread("ls.txt")
if left(v_ls,2)="ls"
   ? "diretorio nao existe"
else
   ? "diretorio existe"
endif
Meio tosco isso mas tou usando um detalhe do linux que é quando um comando não existe ou responde errado o bash devolve o nome do comando no console. Portanto se não existir o diretório ele vai responder algo como
ls: File or directory not found (ou em portugues dependendo da sua distro)
Sergio "Evolver" Fagundes

CURVE-SE DIANTE DE MIM SER INSIGNIFICANTE, POIS EU SOU ROOT
Só respondo em PVT perguntas relativas ao que eu faço. Qualquer outra dúvida favor postar no fórum.
Peço aos veteranos que antes de responder a uma pergunta repetida dêem uma pesquisada e instruam a quem perguntou a fazer o mesmo.
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Verificar se O Diretorio Existe

Mensagem por Mario Mesquita »

Boa tarde a todos.

Estou tentando usar a função ISDIR() para testar a existência ou não de uma subpasta.

Da primeira vez, ela retorna .F., então crio a mesma com MAKEDIR(). Porém, em caso de atualização da mesma, ao testar de novo se a subpasta existe, dá .F. de novo mesmo com a pasta criada, causado um erro DOS 5.

Tem algo que se possa tentar ou o Harbour tem alguma função equivalente, já que essa é herança do Clipper?

Qualquer dica, agradeço.

Saudações,
Mario.
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Verificar se O Diretorio Existe

Mensagem por Mario Mesquita »

Voltei, amigos.

Resolvi com ISDRIRECTORY(). Tem que testar sem a contrabarra final, só usá-la no MAKEDIR().

Então fiz duas variáveis, uma para teste da subpasta e outra para criação. Tosco, mas funcionou.

Sds,
Mario.
tonicm
Usuário Nível 2
Usuário Nível 2
Mensagens: 55
Registrado em: 08 Mar 2016 21:51
Localização: Porto

Verificar se O Diretorio Existe

Mensagem por tonicm »

No windows eu utilizo assim:

Código: Selecionar todos

IF File("C:\TEMP\Mapas\NUL")
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Verificar se O Diretorio Existe

Mensagem por JoséQuintas »

hbmk2 -find dir

...
Harbour core (installed):
ADir()
CurDir()
DirChange()
Directory()
DirRemove()
hb_DirBase()
hb_DirBuild()
hb_DirCreate()
hb_DirDelete()
hb_Directory()
hb_DirExists()
hb_DirRemoveAll()
hb_DirScan()
hb_DirSepAdd()
hb_DirSepDel()
hb_DirSepToOS()
hb_DirTemp()
hb_DirUnbuild()
hb_FNameDir()
hb_gzDirect()
hb_vfDirectory()
hb_vfDirExists()
hb_vfDirMake()
hb_vfDirRemove()
hb_vfDirSpace()
MakeDir()
__Dir()
__hbdoc_DirLastModified()
__hbdoc_LoadDir()
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder