CRIAR PASTAS CASO NAO EXISTAM

MARIOANDRADE 07/03/2014 22:59:37
#435669
Visual Basic 6
Olá meus amigos, preciso de um código para verificar se algumas pastas existem e caso negativo que o aplicativo as crie, abaixo o caminho que quero que seja verificado e ou criado

[Ô]C:\Users\Mario\DropBox\File\software\excel\foto[Ô]

Na verdade isso poderia ser feito pelo Inno Setup tambem , qualquer uma das soluções resolveria meu problema.

Agradeço a quem possa ajudar.
ASHKATCHUP 07/03/2014 23:04:10
#435670
Resposta escolhida
Basicamente, tu precisa utilizar uma combinação das funções DIR e MKDIR:


Public Sub CriaPasta(sDiretorio As String)
[ô]
If Dir(sDiretorio) = [Ô][Ô] Then
MkDir sDiretorio
End If
[ô]
End Sub


MAS a função MKDIR só cria uma pasta por vez. Ou seja, tu tem que criar uma função que lê todo caminho informado e vai testando pasta por pasta:

-C:\
-C:\Users\
-C:\Users\Mario\
-C:\Users\Mario\DropBox\
-C:\Users\Mario\DropBox\File\
-C:\Users\Mario\DropBox\File\software\
-C:\Users\Mario\DropBox\File\software\excel\
-C:\Users\Mario\DropBox\File\software\excel\foto
MARIOANDRADE 08/03/2014 15:09:07
#435695
Citação:

:
Basicamente, tu precisa utilizar uma combinação das funções DIR e MKDIR:


Public Sub CriaPasta(sDiretorio As String)
[ô]
If Dir(sDiretorio) = [Ô][Ô] Then
MkDir sDiretorio
End If
[ô]
End Sub


MAS a função MKDIR só cria uma pasta por vez. Ou seja, tu tem que criar uma função que lê todo caminho informado e vai testando pasta por pasta:

-C:
-C:Users
-C:UsersMario
-C:UsersMarioDropBox
-C:UsersMarioDropBoxFile
-C:UsersMarioDropBoxFilesoftware
-C:UsersMarioDropBoxFilesoftwareexcel
-C:UsersMarioDropBoxFilesoftwareexcel oto



Fiz dessa maneira, deu erro depois de ter criado a primeira pasta pois eu estou verificando se ela está vazia e nao se ela existe, o comando
On Rrror Resume Next
resolveu o problema, mas qual seria o comando para verificar se a pasta existe ou não?


On Error Resume Next
If Dir([Ô]C:\Users[Ô]) = [Ô][Ô] Then
MkDir ([Ô]C:\Users2[Ô])

If Dir([Ô]C:\Users2\Mario[Ô]) = [Ô][Ô] Then
MkDir ([Ô]C:\Users2\Mario[Ô])

If Dir([Ô]C:\Users2\Mario\Dropbox[Ô]) = [Ô][Ô] Then
MkDir ([Ô]C:\Users2\Mario\Dropbox[Ô])

If Dir([Ô]C:\Users2\Mario\Dropbox\Files[Ô]) = [Ô][Ô] Then
MkDir ([Ô]C:\Users2\Mario\Dropbox\Files[Ô])

If Dir([Ô]C:\Users2\Mario\Dropbox\Files\software[Ô]) = [Ô][Ô] Then
MkDir ([Ô]C:\Users2\Mario\Dropbox\Files\software[Ô])

If Dir([Ô]C:\Users2\Mario\Dropbox\Files\software\excel[Ô]) = [Ô][Ô] Then
MkDir ([Ô]C:\Users2\Mario\Dropbox\Files\software\excel[Ô])

If Dir([Ô]C:\Users2\Mario\Dropbox\Files\software\excel\foto[Ô]) = [Ô][Ô] Then
MkDir ([Ô]C:\Users2\Mario\Dropbox\Files\software\excel\foto[Ô])


End If
End If
End If
End If
End If
End If
End If


ASHKATCHUP 08/03/2014 15:24:31
#435696
Me esqueci de um parâmetro...

A função [Ô]DIR[Ô] verifica se uma pasta/arquivo existe.

Como tu vai testar uma pasta, tem que passar o parâmetro abaixo:


If Dir([Ô]C:\Juvenal\[Ô], vbDirectory) = [Ô][Ô] Then
MkDir ([Ô]C:\Juvenal[Ô])
End If
MOUSER 09/03/2014 17:24:53
#435726
Este código funciona no Visual Studio 2010? Provavelmente vou usa-lo para criar um setup do projeto que estou bolando...
ALEVALE 10/03/2014 08:45:12
#435753
Existem N maneiras de fazer isso a que eu utilizo é:

[ô]DECLARAÇÃO DA VARIAVEL EM UM MODULO
Public strDiretorioArmazenamento As String = Application.StartupPath & [Ô]\[Ô]

Public Function fncVerificaDiretorios()
Try
[ô]VERIFICA SE O DIRETORIO DE LOGS EXISTE
If Directory.Exists(strDiretorioArmazenamento & [Ô]LOGS[Ô]) = False Then
Directory.CreateDirectory(strDiretorioArmazenamento & [Ô]LOGS[Ô])
End If

[ô]VERIFICA SE O DIRETORIO DE LOGS_ERRO EXISTE
If Directory.Exists(strDiretorioArmazenamento & [Ô]LOGS_ERRO[Ô]) = False Then
Directory.CreateDirectory(strDiretorioArmazenamento & [Ô]LOGS_ERRO[Ô])
End If

Catch ex As Exception

End Try

End Function
MARIOANDRADE 10/03/2014 20:59:42
#435801
Citação:

:
Me esqueci de um parâmetro...

A função [Ô]DIR[Ô] verifica se uma pasta/arquivo existe.

Como tu vai testar uma pasta, tem que passar o parâmetro abaixo:


If Dir([Ô]C:Juvenal[Ô], vbDirectory) = [Ô][Ô] Then
MkDir ([Ô]C:Juvenal[Ô])
End If



Funcionou, valeu mesmo....
Tópico encerrado , respostas não são mais permitidas