directorios visual basic

Iniciado por ^kazike^, 14 Abril 2008, 11:27 AM

0 Miembros y 1 Visitante están viendo este tema.

^kazike^

Hola a todos:
Estoy creando una aplicacion en VB60 y me gustaria saber cómo podría comprobar si un directorio existe y en caso de que no exista crearlo para poner un archivo.
Gracias y Saludos

Spider-Net


seba123neo

Hola,lo podes hacer con FSO o sino algo asi con Dir()..

Private Sub Form_Load()
MsgBox IIf(Dir("c:\windows", vbDirectory) <> "", "", "no ") & "existe"
End Sub


saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

cassiani

Para crear el directorio basta con usar la instrucción MkDir
Código (vb) [Seleccionar]
Private Sub CmdCrearCarpeta_Click()
   MkDir ("c:\Mi_Carpeta")
End Sub


Otra respuesta que googleando podías haber conseguido por tu cuenta ¡pero que mas da!

^kazike^

Hola:
Gracias por las respuestas, pero tengo otra dudilla:
la carpeta en cuestion deberia estar en el directorio personal de cada usuario, es decir c:\documents and settings\usuario\mis documentos....
Hay alguna forma de obtener esa ruta? xq si el windows esta en ingles mis documentos es my documents por ejemplo, entos me gustaria saber si se puede obetener esa ruta de manera automatica para crear mi directorio alli.
Gracias y Saludos

cassiani

#5
Cita de: ^kazike^ en 16 Abril 2008, 10:13 AM
Hola:
c:\documents and settings\usuario\mis documentos....
Hay alguna forma de obtener esa ruta?

Código (vb) [Seleccionar]
MsgBox Environ("userProfile") & "\Mis documentos"


Código (vb) [Seleccionar]
MsgBox Environ("userProfile") & "\my documents"


¡saludos!

seba123neo

#6
mediante api's podes sacar la ruta de esa carpeta, independientemente si es de ingles o español..algo asi:

Option Explicit
Private Const CSIDL_PERSONAL As Long = &H5
Const MAX_PATH = 260
Private Type SHITEMID
cb As Long
abID As Byte
End Type
Private Type ITEMIDLIST
mkid As SHITEMID
End Type
Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder As Long, pidl As ITEMIDLIST) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long

Private Sub Form_Load()
Dim Path As String
Path = MisDocumentos(CSIDL_PERSONAL)
If Path <> vbNullString Then
MsgBox Path
End If
End Sub

Private Function MisDocumentos(CSIDL As Long) As String
Dim ret As Long
Dim IDL As ITEMIDLIST
Dim Path As String
ret = SHGetSpecialFolderLocation(100, CSIDL, IDL)
If ret = 0 Then
Path$ = Space$(512)
ret = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal Path$)
MisDocumentos = Left$(Path, InStr(Path, Chr$(0)) - 1)
Exit Function
End If
MisDocumentos = vbNullString
End Function
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

cassiani

Citarmediante api's podes sacar la ruta de esa carpeta, independientemente si es de ingles o español..

Claro, además de eso tambien estan los objetos, dependerá de los gustos, el conocimiento y el INVESTIGAR por cuenta propia...

Código (vb) [Seleccionar]
Option Explicit

Private Sub Form_Load()
    MsgBox ObtenerRuta
End Sub

Private Function ObtenerRuta()
Dim Ruta As String
    Ruta = Environ("userprofile") & "\Mis documentos\"
    If Len(Dir$(Ruta)) Then
        ObtenerRuta = Ruta
    Else
        ObtenerRuta = Environ("userprofile") & "\My documents\"
    End If
End Function


Yo solo le mostré una de tantas formas, que él elija cual le conviene más...