Как открыть папку с компакт-диска с помощью VB.NET? - PullRequest
0 голосов
/ 17 июля 2010

Я пытаюсь написать программу, которая открывает папку с компакт-диска при нажатии кнопки. Программа будет запущена с компакт-диска и предназначена для открытия определенной папки. Тем не менее, я не могу использовать проводник "shell" .... "", потому что буква диска будет меняться между компьютерами. Есть ли способ открыть папку прямо с компакт-диска в VB.NET

Ответы [ 5 ]

2 голосов
/ 17 июля 2010

Легко, если вы знаете, что ваша программа была запущена с компакт-диска. Просто прочитайте расположение программы назад:

    Dim exePath As String = System.Reflection.Assembly.GetEntryAssembly().Location
    Dim drive As String = System.IO.Path.GetPathRoot(exePath)
1 голос
/ 02 ноября 2018

Пример, если я хочу выполнить файл: 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
0 голосов
/ 20 апреля 2018

Вы можете использовать этот код:

 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
0 голосов
/ 17 июля 2010

Эта ссылка содержит некоторые основные вещи.Это должно направить вас в правильном направлении.Также возьмите ключевые слова из примера кода и выполните поиск MSDN.MSN имеет много документации и примеров, которые могут привести вас к следующему шагу.

https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-6081470.html#

edit - попробуйте это ...

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
0 голосов
/ 17 июля 2010
  • Найти все буквы дисков в системе.
  • Для каждого диска
    • , если определенная папка существует, открыть ее.
  • Петля
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...