Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di Cholo
    Registrato dal
    Aug 2002
    Messaggi
    680

    [VB6] Selezione cartella

    Ciao,
    Dovrei fare in modo che il mio programma permetta di selezionare una cartella (all' interno di cui leggerò dei file) all' utente.

    Cercavo di usare la "Common Dialog" ma non mi permette di selezionare una cartella, solo File.

    C' è qualche proprietà che devo settare o qualche altro oggetto da utilizzare ?

  2. #2
    Utente di HTML.it L'avatar di Cholo
    Registrato dal
    Aug 2002
    Messaggi
    680
    UP

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361
    se cerchi c'è un mio 3d recente su questo

  4. #4

  5. #5
    Utente di HTML.it L'avatar di Cholo
    Registrato dal
    Aug 2002
    Messaggi
    680
    Si, questo link l' avevo già incontrato stamattina cercando sul forum. Purtroppo non va il sito

  6. #6
    in un modulo:
    codice:
    Option Explicit
    
    Private Type BROWSEINFO
        hOwner As Long
        pidlRoot As Long
        pszDisplayName As String
        lpszTitle As String
        ulFlags As Long
        lpfn As Long
        lParam As Long
        iImage As Long
    End Type
    
    Private Const BIF_RETURNONLYFSDIRS As Long = &H1
    
    Private Declare Function SHGetPathFromIDList Lib "Shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
    Private Declare Function SHBrowseForFolder Lib "Shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
    Public Function BrowseForFolder(ByVal hwnd As Long, ByVal szDialogTitle As String) As String
        Dim BI As BROWSEINFO
        Dim dwIList As Long, RetVal As Long
        Dim szPath As String
        BI.hOwner = hwnd
        BI.lpszTitle = szDialogTitle
        BI.ulFlags = BIF_RETURNONLYFSDIRS
        szPath = Space$(1024)
        dwIList = SHBrowseForFolder(BI)
        RetVal = SHGetPathFromIDList(ByVal dwIList, ByVal szPath)
        If RetVal Then
            BrowseForFolder = Left$(szPath, InStr(szPath, Chr(0)) - 1)
        Else
            BrowseForFolder = ""
        End If
    
    End Function
    E in una Form con un pulsante chiamato Command1 e un campo testo Text1:

    codice:
    Private Sub Command1_Click()
        Dim Temp As String
        Temp = BrowseForFolder(Me.hwnd, "Selezionare una cartella:")
        If Temp <> "" Then Text1.Text = Temp
        If Text1 <> "" And Right(Text1, 1) <> "\" Then Text1 = Text1 + "\"
    End Sub

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361
    bo, a me viene visualizzato il link, comunque c'è lo stesso codice che ti hanno postato, con le spiegazioni...

  8. #8
    Il codice mi funziona benissimo. Come faccio però a settare la directory iniziale da cui partire. (tipo "C:\WINDOWS\TEMP")

    NB. La dir iniziale, non la pIDROOT (che indica la root iniziale dell'albero di ricerca)

    Grazie
    Riccardo

  9. #9
    cmq senza usare api la commondialog ha la proprietà flags per questi scopi che combinata con l'uso del tasto F1 evita inutili chiamate all'OS
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.