shaileshshinde Ответов: 1

Отображение файла изображения и текстового файла одним щелчком мыши в списке


Просмотр папок изображений и текстовых файлов с помощью folderdialog
Но я не могу открыть соответствующий текстовый файл, нажав на название изображения

например: если имя изображения "DataFile1.jpg" тогда ... "DataFile1.txt" не открывается автоматически при нажатии на кнопку "DataFile1.jpg" из списка

Благодаря нижеприведенному я могу просматривать как папку изображений, так и папку текстовых файлов в двух разных списках и открывать ее

Что я уже пробовал:

я попытался открыть оба по отдельности, щелкнув отдельно из другого списка

Мой код:

Private Sub Agregar_Archivos2(ByVal Nombre_Largo As String)
 Dim nombre_Archivo As String = Path.GetFileName(Nombre_Largo)

    If Not Mi_imagen.ContainsKey(nombre_Archivo) Then
        Mi_imagen.Add(nombre_Archivo, Nombre_Largo)

        Lis.Items.Add(nombre_Archivo)
    End If
End Sub
Private Sub Agregar_Archivostext(ByVal Nombre_Largo As String)

    Dim nombre_Archivo As String = Path.GetFileName(Nombre_Largo)

    If Not Mi_textn.ContainsKey(nombre_Archivo) Then
        Mi_textn.Add(nombre_Archivo, Nombre_Largo)

        ListBox1.Items.Add(nombre_Archivo)
    End If
End Sub



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Try

        opp.Filter = "Image Documents (*.jpg) | *.jpg"    'etc, etc..
        If opp.ShowDialog() = DialogResult.OK Then

            Dim archivos() As String = opp.FileNames
            Dim i As Integer
            For i = 0 To archivos.Length - 1
                Agregar_Archivos2(archivos(i))

            Next
        End If

    Catch ex As Exception
        Exit Sub
    End Try
End Sub

Private Sub Agregar_Archivos(v As String)
    Throw New NotImplementedException()
End Sub




Sub imagen()
    Try
        Pic.Image = BM1
        BM1 = Image.FromFile(Obtener_nombre_Largo(Lis.SelectedItem.ToString()))
        Pic.SizeMode = PictureBoxSizeMode.AutoSize

        FlowLayoutPanel1.AutoScroll = True
        FlowLayoutPanel1.Controls.Add(Pic)

        nom.Text = "Image File Name is: " & Lis.Text

    Catch ex As Exception
        Exit Sub
    End Try
End Sub
Sub textn() Try TextBox1.Text = File.ReadAllText(Obtener_nombre_Largotext(ListBox1.SelectedItem.ToString()))

        'Pic.SizeMode = PictureBoxSizeMode.AutoSize



        txtfilename.Text = "File Name: " & ListBox1.Text


    Catch ex As Exception
        Exit Sub
    End Try
End Sub

Richard Deeming

Если вы хотите, чтобы кто-то помог исправить ваш код, то вам нужно показать нам соответствующие части вашего кода.

Нажмите на зеленую ссылку "улучшить вопрос" и обновите свой вопрос соответствующими частями кода. Включите полную информацию о любых ошибках и не забудьте указать, к какой строке кода они относятся.

shaileshshinde

выше приведен мой код. и благодаря этому коду я могу извлечь папку изображений images и папку textfile textfile в двух разных списках и открыть ее отдельно в picturebox и textbox соответственно.

Richard MacCutchan

Где находится код, который изменяет расширение с .jpg на .txt и пытается открыть этот файл?

Richard MacCutchan

И способ сделать это-изменить расширение с .jpg на .txt и передать эту строку в открытый вызов.

Dave Kreskowiak

Итак, опять же, где код, который принимает строку, "data.jpg", получает только имя файла без расширения, а затем добавляет к нему строку ".txt"?

Richard MacCutchan

Я добавил правильные теги <pre> в ваш код, чтобы он был читабельным.

shaileshshinde

я не могу понять, что вы добавили в код, сэр?

Dave Kreskowiak

Это потому, что он не написал никакого кода. Это твоя работа.

shaileshshinde

я не могу написать этот код, сэр. Вы все можете мне в этом помочь? я не могу понять эту идею/логику кодирования

Dave Kreskowiak

Если под "помощью" вы на самом деле подразумеваете "напишите мой код для меня", то нет.

На самом деле это очень просто сделать, в одной строке кода.

Прочитай: Путь.Метод ChangeExtension (String, String) (System.IO)[^]

shaileshshinde

но из-за изменения расширения текстовый файл не откроется

мы можем использовать replace(".jpg",string.empty)+ "." + outputFormat.Replace("+", string.Пустой).Заменить("текст", "txt")

но это изменит только файл ".jpg" на ".txt"

1 Ответов

Рейтинг:
2

Maciej Los

В дополнение к Ричард Маккатчан[^] его комментарии...

Пусть говорят, ваш *.jpg файл находится в каталоге:

string jpgFileName = @"C:\mydir\myfile.jpg";

Теперь вы хотите установить переменную для ссылки на имя текстового файла, который находится в том же каталоге:
string txtFileName = Path.Combine(Path.GetDirectoryName(jpgFileName),
	Path.GetFileNameWithoutExtension(jpgFileName) + ".txt");
//above variable stores: "C:\mydir\myfile.txt"


Теперь вы можете открыть *.jpg и *.txt файл ;)

Понял?


shaileshshinde

не работает сэр

Maciej Los

Очень забавный ответ ;)

shaileshshinde

Что тут смешного?
Если код не работает, значит, не работает.