Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Verificare la presenza di un Drive.
Forum - Visual Basic 6 - Verificare la presenza di un Drive.

Avatar
gouap (Normal User)
Newbie


Messaggi: 2
Iscritto: 04/08/2008

Segnala al moderatore
Postato alle 14:44
Sabato, 16/08/2008
Salve a tutti..Sono un neofita programmatore e vorrei saper e se qualcuno mi sa dire come posso fare in  modo che in vb6 il programma verifichi la presenza di un drive e se esiste ci scriva, cioè:
Se C:\ esiste allora
apri C:\ & ("\Data.txt") per scrivere #1
Io ho provato Così e non funziona..
Private Sub Command1_Click()
Dim Drive1 As Object
Drive1 = "A:\"
If Drive1.Exists = True Then
Open "A:\" & ("\Data.txt") For Output As #1
End If
aiutatemi è importante..

Ultima modifica effettuata da Shutdown il 18/08/2008 alle 2:12
PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 16:29
Sabato, 16/08/2008
potresti usare il controllo DriveListBox, oppure usare l'oggetto filesystemobject(Scripting.FileSystemObject) o usare anche le api di windows, ad esempio:

Codice sorgente - presumibilmente VB.NET

  1. Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
  2.  
  3. Private Sub Form_Load()
  4. Dim drvtmp As String
  5. Dim drives() As String
  6. Dim res As Long
  7. Dim lnstr As Integer
  8.  
  9. res = GetLogicalDriveStrings(0, drvtmp)
  10. drvtmp = String(res, 0)
  11. lnstr = res
  12. res = GetLogicalDriveStrings(lnstr, drvtmp)
  13. drvtmp = Trim(drvtmp)
  14. drvtmp = Replace(drvtmp, vbNullChar, "-")
  15. drvtmp = Replace(drvtmp, "-", "-")
  16. drives = Split(drvtmp, "-")
  17.  
  18. End Sub


a questo punto ottieni l'array drives che contiene le lettere dei drive.

Ultima modifica effettuata da Overflow il 16/08/2008 alle 16:30
PM Quote
Avatar
Alceus (Member)
Expert


Messaggi: 288
Iscritto: 22/07/2008

Segnala al moderatore
Postato alle 17:03
Sabato, 16/08/2008
Mettete titoli più significativi... Anche se si tratta di qualcosa di importante ogni richiesta ha la stessa priorità... Il moderatore deve gestire anche altri forum, quindi non può badare ad ogni topic...

Ultima modifica effettuata da Alceus il 16/08/2008 alle 17:04
PM Quote
Avatar
gouap (Normal User)
Newbie


Messaggi: 2
Iscritto: 04/08/2008

Segnala al moderatore
Postato alle 18:56
Sabato, 16/08/2008
sorry..comunque non è quello che intendevo;
in pratica sto creando un programma che salva una copia "Data.txt" su tutti i drive disponibili all'evento click  senza sapere quali siano le lettere unità..io ho provato a scrivere un codice che copia "Data.txt" su tutti i drive: A:\ B:\ C:\ ecc... ma quando il programma non trova un drive di quelli della lista dà errore e si chiude..il punto è che il programma deve funzionare su ogni computer, ma io non so come si chiamino i drive di quel computer..dovrei fare una cosa del tipo:
Codice sorgente - presumibilmente Plain Text

  1.  


If "A:\" Exists Then Open "A:\" & ("\Data.txt") For Output As #1
ElseIf "B:\" Exists Then Open "B:\" & ("\Data.txt") For Output As #1
Ma Non So Proprio Come Fare :(

PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 23:35
Sabato, 16/08/2008
puoi fare ciò in diversi modi...

con un drivelistbox e questo codice
Codice sorgente - presumibilmente VB.NET

  1. private sub command1_click()
  2. for i=0 to drivelist.listcount-1
  3. open drivelist.list(i)& "/data.txt" .........
  4. ...
  5. next i
  6. end sub



oppure usi la funzione dir che restituisce un valore solo se la directory passata come parametro esiste...
in pratica è quel che hai chiesto

Codice sorgente - presumibilmente VB.NET

  1. private command1_click()
  2. for i=0 to 25
  3. if dir(chr(65+i)&":\") then
  4. open chr(65+i)&":\data.txt" ........
  5. ...
  6. next i
  7. end sub


PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 11:10
Mercoledì, 20/08/2008
prova a mettere "a:\data.txt"

PM Quote