Как открыть папку с компакт-диска с помощью VB.NET?
Я пытаюсь написать программу, которая открывает папку с компакт-диска при нажатии кнопки. Программа будет запущена с компакт-диска и предназначена для открытия определенной папки. Тем не менее, я не могу использовать "оболочку"explorer...."", потому что буква диска будет меняться между компьютерами. Есть ли способ открыть папку прямо с компакт-диска в VB.NET
5 ответов
Это легко, если вы знаете, что ваша программа была запущена с компакт-диска. Просто прочитайте расположение программы назад:
Dim exePath As String = System.Reflection.Assembly.GetEntryAssembly().Location
Dim drive As String = System.IO.Path.GetPathRoot(exePath)
Пример, если я хочу выполнить файл: executetable.exe; В оптическом приводе E: \ исполняемые файлы \executetable.exe")
Код:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim strDrives() As String
Dim drvInof As System.IO.DriveInfo
'Get all drives on the computer
. strDrives = System.IO.Directory.GetLogicalDrives
'list all the drives
For i As Int16 = 0 To strDrives.Length
'Get drive info
drvInof = New System.IO.DriveInfo(strDrives(i))
'Check if it`s CDRom
If drvInof.DriveType = IO.DriveType.CDRom Then
'Run exe from the CDRom
Try
'here we try to run from the cdrom we found the exe
Process.Start(drvInof.Name & "executables\executable.exe")
Catch ex As Exception
'error handle if the exe is not found or anything else
MessageBox.Show(ex.ToString)
End Try
End If
Next
End Sub
Вы можете использовать этот код:
Dim allDrives() As DriveInfo = DriveInfo.GetDrives()
Dim d As DriveInfo
For Each d In allDrives
'Console.WriteLine("Drive {0}", d.Name)
'Console.WriteLine(" Drive type: {0}", d.DriveType)
If d.DriveType = DriveType.CDRom Then
If d.IsReady = True Then
Console.WriteLine(" Volume Name: {0}", d.Name)
Console.WriteLine(" Volume label: {0}", d.VolumeLabel)
Console.WriteLine(" File system: {0}", d.DriveFormat)
Console.WriteLine( _
" Available space to current user:{0, 15} bytes", _
d.AvailableFreeSpace)
Console.WriteLine( _
" Total available space: {0, 15} bytes", _
d.TotalFreeSpace)
Console.WriteLine( _
" Total size of drive: {0, 15} bytes ", _
d.TotalSize)
End If
End If
Next
Эта ссылка содержит некоторые основные вещи. Это должно привести вас в правильном направлении. Также возьмите ключевые слова из примера кода и выполните поиск MSDN. У MSN есть много документации и примеров, которые могут помочь вам перейти к следующему шагу.
https://web.archive.org/web/1/http://articles.techrepublic.com.com/5100-10878_11-6081470.html
редактировать - попробуйте это...
Imports System.IO
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For Each D As DriveInfo In DriveInfo.GetDrives
If D.DriveType = DriveType.CDRom Then
Debug.WriteLine(D.Name)
End If
Next
End Sub
End Class
- Найти все буквы диска в системе.
- Для каждого диска
- если определенная папка существует, откройте ее.
- петля