Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Root folder
Forum - C# / VB.NET - Root folder

Avatar
maverik79 (Normal User)
Rookie


Messaggi: 45
Iscritto: 18/05/2009

Segnala al moderatore
Postato alle 17:00
Lunedì, 22/06/2009
si può aprire con un pulsante una root folder di un server dentro una form che contiene il pulsante


Mav
PM Quote
Avatar
GoLDBeRG (Ex-Member)
Expert


Messaggi: 331
Iscritto: 19/12/2005

Segnala al moderatore
Postato alle 21:55
Lunedì, 22/06/2009
certo che si puo ma dovresti essere piu preciso....

PM Quote
Avatar
maverik79 (Normal User)
Rookie


Messaggi: 45
Iscritto: 18/05/2009

Segnala al moderatore
Postato alle 15:12
Martedì, 23/06/2009
ok io ho un indirizzo nel mio server e cioè 95.228.ecc adesso devo creare un pulsante dentro un form che al suo click mi apra dentro il form tutto quello che ho nel mio server !!!

Come si fa?


Mav
PM Quote
Avatar
Gianluca87 (Ex-Member)
Expert


Messaggi: 300
Iscritto: 16/11/2008

Segnala al moderatore
Postato alle 16:12
Martedì, 23/06/2009
mi dispiace ma non so come aiutarti servono più informazioni :
quale protocollo vuoi utilizzare per accedere al server?
cosa devi realizzare
ecc....

se non sei in possesso di queste informazioni fai così

www.google.it
per comprendere la tecnologia di comunicazione da utilizzare

www.msdn.com
per trovare le classi utilizzabili per una determinata tecnologia

www.pierotofy.it
per chiedere aiuti sul funzionamento delle classi nello specifico .net proponendo qualcosa di già fatto da te o di funzionante trovato in giro

calcola che su msdn trovi un sacco di esempi funzionanti e pronti assieme alla documentazione delle classi

Ultima modifica effettuata da Gianluca87 il 23/06/2009 alle 16:13


a domanda precisa, risposta precisa...
a domanda generica, risposta generica...
PM Quote
Avatar
maverik79 (Normal User)
Rookie


Messaggi: 45
Iscritto: 18/05/2009

Segnala al moderatore
Postato alle 16:43
Mercoledì, 24/06/2009
Hai ragione in Pratica devo realizzare una maschera che mi permette il collegamento aud un server (praticamente come avviene su una pag internet se io metto ad esempio le coordinate del server 98.222.134.ecc per fare un esempio e nella root del mio server ci metto una pag intenet praticamente cliccando come indirizzo quello sopra mi apre la cosidetta pag ) io invece dovrei creare una maschera in vb che mi permetta di vedere cosa c'è dentro la root folder del mio server !!!

Tutto qui ma non so come fare!!!


Mav
PM Quote
Avatar
GoLDBeRG (Ex-Member)
Expert


Messaggi: 331
Iscritto: 19/12/2005

Segnala al moderatore
Postato alle 17:49
Mercoledì, 24/06/2009
è facile invece..... fai un lato client e un lato server... lato server lo metti su server e gli fai fare quello che vuoi e con il lato client gestisci il lato server con dei comandi per esempio !vedi o che ne so !sposta questo qui aqui etc etc

PM Quote
Avatar
maverik79 (Normal User)
Rookie


Messaggi: 45
Iscritto: 18/05/2009

Segnala al moderatore
Postato alle 18:03
Mercoledì, 24/06/2009
lato client  

Codice sorgente - presumibilmente VB.NET

  1. Option Strict Off
  2. Option Explicit On
  3. Friend Class ClientForm
  4.         Inherits System.Windows.Forms.Form
  5.         Private ELENCADIR As Boolean
  6.        
  7.         Private Sub ClientForm_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
  8.                 Client.Load(1) ' Alloca istanza
  9.         End Sub
  10.        
  11.         Private Sub Connetti_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Connetti.Click
  12.                 If Trim(HostName.Text) = "" Then Exit Sub
  13.                 Client.Unload(1) ' Dealloca prima di utilizzare
  14.                 Client.Load(1) ' Rialloca istanza
  15.                 Client(1).Connect(Trim(HostName.Text), 1500)
  16.         End Sub
  17.        
  18.         Private Sub Disconnetti_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Disconnetti.Click
  19.                 Client(1).Close() ' Disconnetti
  20.         End Sub
  21.        
  22.         Private Sub AggiornaButton_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles AggiornaButton.Click
  23.                 If Client(1).CtlState <> MSWinsockLib.StateConstants.sckConnected Then Exit Sub
  24.                 ELENCADIR = True
  25.                 If SceltaDIR(0).Checked Then Client(1).SendData("DIRF" & vbNewLine)
  26.                 If SceltaDIR(1).Checked Then Client(1).SendData("DIRS" & vbNewLine)
  27.                 If SceltaDIR(2).Checked Then Client(1).SendData("DIR" & vbNewLine)
  28.         End Sub
  29.        
  30.         Private Sub Client_DataArrival(ByVal eventSender As System.Object, ByVal eventArgs As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent) Handles Client.DataArrival
  31.                 Dim Index As Short = Client.GetIndex(eventSender)
  32.                 Dim DATI As String
  33.                 Client(1).GetData(DATI, VariantType.String, eventArgs.bytesTotal) ' Ricevi
  34.                 If ELENCADIR = True Then PreparaElenco(DATI)
  35.         End Sub
  36.        
  37.         Private Sub ElencoFiles_DoubleClick(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles ElencoFiles.DoubleClick
  38.                 Client(1).SendData("CD " & ElencoFiles.Text & vbNewLine)
  39.         End Sub
  40.        
  41.         Private Sub PreparaElenco(ByVal Elenco As String)
  42.                 Dim INVIO As Short
  43.                 ELENCADIR = False
  44.                 ElencoFiles.Items.Clear()
  45.                 Elenco = Mid(Elenco, InStr(1, Elenco, vbNewLine))
  46.                 INVIO = InStr(1, Elenco, vbNewLine)
  47.                 If InStr(INVIO + 1, Elenco, vbNewLine) < 1 Then INVIO = 0
  48.                 While INVIO <> 0
  49.                         ElencoFiles.Items.Add(Mid(Elenco, INVIO + 2, InStr(INVIO + 1, Elenco, vbNewLine) - INVIO - 2))
  50.                         INVIO = InStr(INVIO + 1, Elenco, vbNewLine)
  51.                         If InStr(INVIO + 1, Elenco, vbNewLine) < 1 Then INVIO = 0
  52.                 End While
  53.         End Sub
  54. End Class
  55.  
  56. lato server
  57.  
  58. Option Strict Off
  59. Option Explicit On
  60. Imports VB = Microsoft.VisualBasic
  61. Friend Class ServerForm
  62.         Inherits System.Windows.Forms.Form
  63.         Private DATIINARRIVO As String ' Dati senza invio
  64.        
  65.         Private Sub ServerForm_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
  66.                 Server.Listen()
  67.         End Sub
  68.        
  69.         Private Sub ServerForm_FormClosed(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
  70.                 Server_CloseEvent(Server, New System.EventArgs()) ' Chiusura del server
  71.                 End
  72.         End Sub
  73.        
  74.         Private Sub Server_CloseEvent(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Server.CloseEvent
  75.                 Server.Close()
  76.                 Server.Listen() ' Riapre la porta in ascolto
  77.                 StatoConnessione.Text = "Nessun utente collegato"
  78.         End Sub
  79.        
  80.         Private Sub Server_ConnectionRequest(ByVal eventSender As System.Object, ByVal eventArgs As AxMSWinsockLib.DMSWinsockControlEvents_ConnectionRequestEvent) Handles Server.ConnectionRequest
  81.                 Server.Close()
  82.                 Server.Accept(eventArgs.requestID) ' Accetta connessione
  83.                 System.Windows.Forms.Application.DoEvents()
  84.                 TimeOut.Enabled = True ' Avvia countdown
  85.                 StatoConnessione.Text = "Un utente collegato"
  86.         End Sub
  87.        
  88.         Private Sub Server_DataArrival(ByVal eventSender As System.Object, ByVal eventArgs As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent) Handles Server.DataArrival
  89.                 Dim DATI As String
  90.                 TimeOut.Enabled = False
  91.                 On Error Resume Next
  92.                 Server.GetData(DATI, VariantType.String, eventArgs.bytesTotal) ' Legge buffer
  93.                 DATIINARRIVO = DATIINARRIVO & DATI ' Appende buffer
  94.                 If VB.Right(DATIINARRIVO, 2) = vbNewLine Then
  95.                         GestisciComandi(VB.Left(DATIINARRIVO, Len(DATIINARRIVO) - 2))
  96.                         DATIINARRIVO = ""
  97.                 End If
  98.                 TimeOut.Enabled = True ' Azzera countdown
  99.         End Sub
  100.        
  101.         Private Sub TimeOut_Tick(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles TimeOut.Tick
  102.                 Server_CloseEvent(Server, New System.EventArgs())
  103.                 TimeOut.Enabled = False
  104.         End Sub
  105.        
  106.         Private Sub GestisciComandi(ByVal COMANDO As String)
  107.                 Dim VALORE As String
  108.                 On Error Resume Next
  109.                 If InStr(1, COMANDO, " ") <= 0 Then
  110.                         Select Case UCase(COMANDO) ' Comandi senza parametri
  111.                                 Case "QUIT" : Server_CloseEvent(Server, New System.EventArgs())
  112.                                 Case "BYE" : Server_CloseEvent(Server, New System.EventArgs())
  113.                                 Case "DIR" : LeggiFilesDir(CurDir(), True, True)
  114.                                 Case "DIRS" : LeggiFilesDir(CurDir(), True, False)
  115.                                 Case "DIRF" : LeggiFilesDir(CurDir(), False, True)
  116.                                 Case Else : Server.SendData(" -ERR: Comando sconosciuto -> " & COMANDO & vbNewLine)
  117.                         End Select
  118.                 Else ' Comandi con parametri
  119.                         VALORE = Trim(Mid(COMANDO, InStr(1, COMANDO, " ") + 1))
  120.                         If UCase(VB.Left(COMANDO, InStr(1, COMANDO, " ") - 1)) = "CD" Then
  121.                                 ChDir(VALORE)
  122.                                 Server.SendData(" +OK: La cartella di lavoro è: " & CurDir() & vbNewLine)
  123.                         End If
  124.                 End If
  125.         End Sub
  126.        
  127.         Public Sub LeggiFilesDir(ByVal CARTELLA As String, ByVal CARTELLE As Boolean, ByVal FILES As Boolean)
  128.                 Dim ELENCOFILESDIR As String
  129.                 Dim TEMPSTR As String
  130.                 Dim VALIDO As Boolean
  131.                 ELENCOFILESDIR = ""
  132.                 If VB.Right(CARTELLA, 1) = "\" Then CARTELLA = VB.Left(CARTELLA, Len(CARTELLA) - 1)
  133.                
  134.                 TEMPSTR = Dir(CARTELLA & "\*.*", FileAttribute.Archive + FileAttribute.Directory + FileAttribute.Hidden + FileAttribute.Normal + FileAttribute.ReadOnly + FileAttribute.System)
  135.                 While TEMPSTR <> ""
  136.                         VALIDO = False
  137.                         If (CARTELLE = True) And (GetAttr(CARTELLA & "\" & TEMPSTR) And FileAttribute.Directory) = FileAttribute.Directory Then VALIDO = True
  138.                         If (FILES = True) And (GetAttr(CARTELLA & "\" & TEMPSTR) And FileAttribute.Directory) <> FileAttribute.Directory Then VALIDO = True
  139.                         If VALIDO = True Then ELENCOFILESDIR = ELENCOFILESDIR & vbNewLine & TEMPSTR
  140.                        
  141.                         TEMPSTR = Dir() ' Elemento successivo
  142.                 End While
  143.                 Server.SendData(" +OK: " & ELENCOFILESDIR & vbNewLine)
  144.         End Sub
  145. End Class



Ma non mi funziona!!!!!

@Mod: il tag "code" non è un optional :yup:

Ultima modifica effettuata da Il Totem il 25/06/2009 alle 19:09


Mav
PM Quote
Avatar
Gianluca87 (Ex-Member)
Expert


Messaggi: 300
Iscritto: 16/11/2008

Segnala al moderatore
Postato alle 21:14
Venerdì, 26/06/2009
secondo me fare un programma server per navigare le folder non ha senso ne esistono a pacchi che utilizzano i protocolli più svariati (FTP, SSH, SFTP, SCP......ecc)
dipende da che tecnologia vuoi usare, da che servizi ha il server, da che livelli di permessi puoi utilizzare con il servizio che scegli...


a domanda precisa, risposta precisa...
a domanda generica, risposta generica...
PM Quote
Avatar
GoLDBeRG (Ex-Member)
Expert


Messaggi: 331
Iscritto: 19/12/2005

Segnala al moderatore
Postato alle 9:30
Domenica, 28/06/2009
secondo me è sbagliata tutta la logica della progettazione.... è tutto molto confusionale pieno di funzioni vecchie... trim, ucase, left, right.... tutta quella robaccia ti fa sbagliare, quando ricevi il messaggio dal client sul server fai un select case generale piu pulito e li gestisci con procedure separate, è abbastanza sporco come lavoro... scusa s ete lo dico ma questa è programmazione da vb6... hai voluto usare la logica di vb6 su vb.net... non ha senso...

PM Quote