Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 14 su 14
  1. #11
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Originariamente inviato da diagre
    Ciao!
    Ieri ho avuto modo di andare avanti sul "progetto" e posso dire che sono molto contento di come è uscito.
    Ho riletto più volte quello che mi hai scritto e ho cercato di mettere in pratica sia la tua idea che la mia e alla fine sono riuscito a creare le tanto agognate cartelle!
    il codice è questo:
    .....
    Ha un pò di imperfezioni che però oggi pensavo di risolvere,tipo quella famosa variabile percorso1 che vado ad impostare e che non serve a una beata cippa se non ai miei trip mentali!
    Di seguito il tuo codice e miei commenti su quello che penso... si possa migliorare.
    codice:
    Imports System  ' non serve
    Imports System.IO
    Imports System.Collections  ' non serve
    Imports System.Windows.Forms  ' non serve
    
    Public Class Form1
    
        Private Sub Form1_Load() Handles MyBase.Load
            ' ComboBoxStyle.DropDownList si può impostare in "modalità progettazione" della form e quindi
            ' si possono eliminare le due righe sotto. Seleziona la combobox, nella finesta "proprietà" trova 
            ' la voce dropdownstyle e seleziona dropdownlist.
            ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList
            ComboBox2.DropDownStyle = ComboBoxStyle.DropDownList
    
            Dim tipo_drive As String
            For a = 0 To My.Computer.FileSystem.Drives.Count - 1 Step 1
                tipo_drive = My.Computer.FileSystem.Drives(a).DriveType.ToString
                Select Case tipo_drive
                    Case "Network"
                        ComboBox1.Items.Add(My.Computer.FileSystem.Drives(a).ToString)
                End Select
            Next
            ComboBox2.Items.Add("Immagini")
            ComboBox2.Items.Add("Video")
        End Sub
    
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            ' la riga sotto devi inserirla dopo i controlli sulle combobox e la textbox perchè
            ' dichiarandola in questo punto prende i valori vuoti se il programma è appena avviato
            ' altrimenti, se hai già usato il programma, prende i valori già usati che non servono
            ' visto che le cartelle sono già state create...
            ' Non cambia niente ma penso sia più corretto inserirla come nel mio post precedente
            ' per evitare un operazione che può risultare inutile se i controlli sono positivi
            Dim percorso As String = ComboBox1.SelectedItem & TextBox1.Text
    
            ' la riga sotto puoi eliminarla sostituendo "percorso1" con "percorso"
            Dim percorso1 As String = percorso
    
            ' le due variabili non servono...
            ' Select Case ComboBox2.SelectedItem prende in considerazione il testo selezionato
            ' quindi puoi scrivere direttamente "Immagini" al posto di Img e "Video" al posto 
            ' di Img
            Dim Img = "Immagini"
            Dim Vid = "Video"
    
            If ComboBox1.SelectedItem = "" Then
                MsgBox("Selezionare un unità di rete")
                Return
            Else
                If TextBox1.Text = "" Then
                    MsgBox("Inserire il nome della cartella")
                    Return
                Else
                    If ComboBox2.SelectedItem = "" Then
                        MsgBox("Seleziona il tipo di lavoro")
                        Return
                    End If
                End If
            End If
            Try
                If Directory.Exists(percorso1) = False Then
                    Directory.CreateDirectory(percorso1)
                    MsgBox("Cartella creata!")
                Else
                    If Directory.Exists(percorso1) = True Then
                        MsgBox("La cartella è già esistente!")
                    End If
                End If
    
            Catch ex As Exception
                Console.WriteLine("Processo Fallito", ex.ToString())
            End Try
    
            ' Volendo puoi gestire sotto_cartelle, nel senso che se pensi di voler
            ' modificare le cartelle da creare senza mettere mano a questo codice
            ' puoi creare la classica "finestra" Impostazioni e fare delle modifiche.
            Dim sotto_cartelle As New ArrayList
            Select Case ComboBox2.SelectedItem
    
                Case Img
                    sotto_cartelle.Add("imgTest")
                    sotto_cartelle.Add("imgDef")
                    sotto_cartelle.Add("renderassets")
                Case Vid
                    sotto_cartelle.Add("scene")
                    sotto_cartelle.Add("maps")
                    sotto_cartelle.Add("docs")
                    sotto_cartelle.Add("xref")
                    sotto_cartelle.Add("proxy")
                    sotto_cartelle.Add("models")
                    sotto_cartelle.Add("containers")
                    sotto_cartelle.Add("imgTest")
                    sotto_cartelle.Add("renderpresets")
                    sotto_cartelle.Add("renderassets")
                    sotto_cartelle.Add("reference")
                    sotto_cartelle.Add("editing")
                    sotto_cartelle.Add("post")
            End Select
            Try
                Directory.CreateDirectory(percorso)
                For a = 0 To sotto_cartelle.Count - 1 Step 1
                    Directory.CreateDirectory(percorso & "\" & sotto_cartelle(a))
                    Console.WriteLine("creato percorso: " & percorso & "\" & sotto_cartelle(a))
                Next
            Catch ex As Exception
                MsgBox("Si è verificato un errore:" & vbCrLf & ex.Message)
                sotto_cartelle = Nothing
                Return
            End Try
        End Sub
    End Class
    Pensavo però di implementare due funzioni:

    1.Alla selezione dell'unità di rete dare la possibilità di:
    - A) Scegliere di creare una nuova cartella col nome del textbox
    - B) Scegliere una delle cartelle presenti (su quell'unità di rete) e creare la cartella col nome del textbox (all'interno della cartella scelta prima)

    2.La possibilità di avere un Browse folder (oltre alla scelta dell'unità)

    Riusciresti a linkarmi qualcosa per capire almeno da dove iniziare?
    ti ringrazio ancora!
    Ciau
    Dipende da come vuoi presentare le scelte...ad esempio, per il punto 1, puoi usare due radiobutton per la scelta "nuova" o "esistente" e il classico "sfoglia", quindi agire di conseguenza. Oppure sostituire la textbox con una combobox in cui aggiungi "nuova cartella" e poi tutte le cartelle presenti sul drive selezionato, poi, in base alla selezione si esegue il codice adatto.
    Puoi iniziare a dare uno sguardo qui per sfogliare le cartelle:
    http://msdn.microsoft.com/it-it/libr...serdialog.aspx
    http://msdn.microsoft.com/it-it/library/xca5d950.aspx
    PS: a primo impatto c' ero diventato scemo...non guardare public ecc...basta che aggiungi il controllo e scrivi l' if all' interno di un evento es. al click di un button.

  2. #12
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    8
    Ciao!
    Scusa se son sparito da un giorno all'altro ma abbiamo avuto un periodo bello incasinato qua in ufficio e questo progetto è passato in secondo piano.

    Adesso che ho qualche momento libero posso rimettere le mani sopra :\
    Ho fatto le modifiche che mi hai suggerito e adesso stavo leggendo quelle pagine che mi hai linkato per arrivare all'implementazione di altre funzioni.
    Riguardo questo chiedere il tuo parere su come strutturare queste funzioni.
    In allegato trovi la "situazione" nas che ho in ufficio.(unica differenza quella che ora è R: diventa O

    Su S abbiamo i lavori VARI
    Su T abbiamo il cliente Pippo (nome fittizio)
    Su U abbiamo il cliente Pluto

    T all'interno di se ha una serie di cartelle tipo:
    • Piemonte
    • Lombardia
    • Liguria
    • Etc...

    ..e ogni cartella elencata sopra ha all'interno altre cartelle tipo:
    • ..\Novara
    • ..\Torino
    • ..\Ivrea
    • Etc...

    ...e a volte capita che all'interno di quelle cartelle sopracitate ce ne siano altre tipo:
    • ..\..\Campidoglio
    • ..\..\Parella
    • ..\..\San Salvario
    • Etc...


    Tu come struttureresti?
    PS: i nomi inseriti sono fittizi ma la struttura risulta quella.Ti incollo l'ultimo codice funzionante per sicurezza
    Ciau!

    codice:
    Imports System.IO
    
    Public Class Form1
    
        Private Sub Form1_Load() Handles MyBase.Load
    
            Dim tipo_drive As String
            For a = 0 To My.Computer.FileSystem.Drives.Count - 1 Step 1
                tipo_drive = My.Computer.FileSystem.Drives(a).DriveType.ToString
                Select Case tipo_drive
                    Case "Network"
                        ComboBox1.Items.Add(My.Computer.FileSystem.Drives(a).ToString)
                End Select
            Next
            ComboBox2.Items.Add("Immagini")
            ComboBox2.Items.Add("Video")
        End Sub
    
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim percorso As String = ComboBox1.SelectedItem & TextBox1.Text
    
            Dim Img = "Immagini"
            Dim Vid = "Video"
    
            If ComboBox1.SelectedItem = "" Then
                MsgBox("Selezionare un unità di rete")
                Return
            Else
                If TextBox1.Text = "" Then
                    MsgBox("Inserire il nome della cartella")
                    Return
                Else
                    If ComboBox2.SelectedItem = "" Then
                        MsgBox("Seleziona il tipo di lavoro")
                        Return
                    End If
                End If
            End If
            Try
                If Directory.Exists(percorso) = False Then
                    Directory.CreateDirectory(percorso)
                    MsgBox("Cartella creata!")
                Else
                    If Directory.Exists(percorso) = True Then
                        MsgBox("La cartella è già esistente!")
                    End If
                End If
    
            Catch ex As Exception
                Console.WriteLine("Processo Fallito", ex.ToString())
            End Try
    
            Dim sotto_cartelle As New ArrayList
            Select Case ComboBox2.SelectedItem
    
                Case Img
                    sotto_cartelle.Add("imgTest")
                    sotto_cartelle.Add("imgDef")
                    sotto_cartelle.Add("renderassets")
                Case Vid
                    sotto_cartelle.Add("scene")
                    sotto_cartelle.Add("maps")
                    sotto_cartelle.Add("docs")
                    sotto_cartelle.Add("xref")
                    sotto_cartelle.Add("proxy")
                    sotto_cartelle.Add("models")
                    sotto_cartelle.Add("containers")
                    sotto_cartelle.Add("imgTest")
                    sotto_cartelle.Add("renderpresets")
                    sotto_cartelle.Add("renderassets")
                    sotto_cartelle.Add("reference")
                    sotto_cartelle.Add("editing")
                    sotto_cartelle.Add("post")
            End Select
            Try
                Directory.CreateDirectory(percorso)
                For a = 0 To sotto_cartelle.Count - 1 Step 1
                    Directory.CreateDirectory(percorso & "\" & sotto_cartelle(a))
                    Console.WriteLine("creato percorso: " & percorso & "\" & sotto_cartelle(a))
                Next
            Catch ex As Exception
                MsgBox("Si è verificato un errore:" & vbCrLf & ex.Message)
                sotto_cartelle = Nothing
                Return
            End Try
        End Sub
    End Class

  3. #13
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    8
    Ho dimenticato l'allegato prima e non me lo fa allegare causa grandezza eccessiva,quindi ti incollo il link all'img


  4. #14
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Originariamente inviato da diagre
    Ciao!
    Scusa se son sparito da un giorno all'altro ma abbiamo avuto un periodo bello incasinato qua in ufficio e questo progetto è passato in secondo piano.
    No problem...se mi dovevi pagare ti aspettavo sotto casa

    Tu come struttureresti?
    ...non dipende da me...nel senso che "a me" vengono millemila pruriti...tipo aggiungere un form "impostazioni" nel quale salvare l' associazione cliente/unità.
    Penso che dovresti scriverti, in senso letterale, le funzioni del programma e come presentarle in base alle tue necessità e al target degli utilizzatori, tipo un diagramma di flusso e una "sceneggiatura" che sarebbe l' interfaccia grafica...una volta fatto si può decidere la soluzione migliore e scrivere il codice.
    Comunque, qui:
    http://msdn.microsoft.com/it-it/libr...v=vs.100).aspx
    trovi un buon esempio per creare un' "esplora risorse".

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 © 2026 vBulletin Solutions, Inc. All rights reserved.