ABRIR ARQUIVO POR CAMINHO

HAWER99 15/05/2013 23:46:53
#423565
Olá Galera! Estou fazendo um projeto no VB 8, e quero saber: como faço para abrir um arquivo de um caminho de um dispositivo removível (ex.: pen drive, disco, etc). Exemplo:

Shell([Ô]C:\Users\Hawer\Desktop\arquivo.exe[Ô])

Esse código é para abrir um arquivo do Disco Local (C:). Eu quero um código para abrir um arquivo de um pen drive. Não posso usar este, porque, no meu computador, a letra da unidade é (F:), mas cada computador a letra é diferente. Então preciso de um código para poder usar em qualquer computador. Obrigado!
ALEVALE 16/05/2013 08:08:20
#423567
Resposta escolhida
O que você vai precisar de qualquer forme é saber qual é a Letra não existe uma forma de você 100% de garantir isso.
O que você pode fazer é [Ô]Identificar se o disco é removível (USB) e depois verifique se o arquivo existe dentro do disco ai então você executa ele.

Utilize a classe [Ô]DriverInfo[Ô] ou se quiser algo mais sofisticado faça uma função para identificar quando um pendrive é conectado.
PEGUDO 16/05/2013 08:21:54
#423569
Faça uma For Each pelos drives à procura do nome do aqruivo
Dim NomeArquivo As String = [txt-color=#e80000][Ô]Nome_do_Arquivo_a_procurar[Ô][/txt-color]

For Each Drive In My.Computer.FileSystem.Drives
If Not Drive.Name = [txt-color=#e80000][Ô]C:\[Ô] [/txt-color]Then [txt-color=#007100][ô]Como está em um Pen Drive, não tem necessidade de procurar no C:\[/txt-color]
[txt-color=#0000f0]Try
For Each [/txt-color]Arquivo As String [txt-color=#0000f0]In My[/txt-color].Computer.FileSystem.GetFiles(Drive.Name)
[txt-color=#0000f0]If [/txt-color]Arquivo.Contains(NomeArquivo) Then
Process.Start(Arquivo)
[txt-color=#0000f0]GoTo[/txt-color] Achou
[txt-color=#0000f0]End If
Next
Catch [/txt-color]ex As [txt-color=#0000f0]Exception[/txt-color]

[txt-color=#0000f0] End Try
End If
Next[/txt-color]

Achou:
KERPLUNK 16/05/2013 08:54:47
#423571
Bem, existe uma maneira de fazer uma lista somente dos drives removíveis:

C#
List<DriveInfo> driveList = DriveInfo.GetDrives().Where(d => d.DriveType == DriveType.Removeable).ToList();

VB.NET
Dim driveList As List(Of DriveInfo) = DriveInfo.GetDrives().Where(Function(d) d.DriveType = DriveType.Removeable).ToList()


Tópico encerrado , respostas não são mais permitidas