C++ Verificar se uma pasta existe

monkeypuke

Power Member
Boas.
Eu quase nada percebo de c++, por isso gostaria de vos perguntar se existe alguma maneira de verificar se uma pasta existe ou não e, se ela não existir, criá-la.

Obrigado
 
Em c++ não faço a mínima ideia como se faz, mas usando um ficheiro batch é possível, ficara mais ou menos assim:

Código:
 @ECHO OFF
title Folder nomedapasta
if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto End
if NOT EXIST nomedapasta goto CRIAR
:CRIAR
md nomedapasta
exit
:End
exit

Atenção que onde diz "nomedapasta" tens de escrever a mesma coisa, pois será o nome que a pasta terá logo terá de coincidir na verificação e na criação da mesma caso não exista...

Espero ter ajudado :D

Cumps
 
Em c++ não faço a mínima ideia como se faz, mas usando um ficheiro batch é possível, ficara mais ou menos assim:

Código:
 @ECHO OFF
title Folder nomedapasta
if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto End
if NOT EXIST nomedapasta goto CRIAR
:CRIAR
md nomedapasta
exit
:End
exit
Atenção que onde diz "nomedapasta" tens de escrever a mesma coisa, pois será o nome que a pasta terá logo terá de coincidir na verificação e na criação da mesma caso não exista...

Espero ter ajudado :D

Cumps

Em batch em sei que dá. o que eu queria mesmo era em c++. mas obrigado na mesma.

Cumpz
 
tens de usar a biblioteca "dirent.h", tenho quase a certeza.

vê esta thread, que tem lá dicas valiosas sobre manipulação de ficheiros/directorias:

http://forum.zwame.pt/showthread.php?t=380706

cumps

da de certeza

se tiver o path completo c:\qualquercoisa\pastaX ou caminho relativo e vereficar se pastaX existe é simples, é so fazer uma pesquisa em profundidade pelos directorios

se for procurar num directorio qualquer (não vejo grande utilidade nisso), tens que vereficar em cada directorio e expandir recursivamente os directorios existentes dentro do mesmo
 
Eu tenho isso feito (parecido) usando a API de um sistema Unix, usando a estrutura dirent. Não será exactamente igual em Windows, porque as chamadas ao SO serão diferentes, suponho.
 
Back
Topo