'Anyway to read and write .png file and link .txt file named the same as .png file?

Its made in Windows Forms at the most, in a button

 public Photo(string filename)
            {
                bitmap = new Bitmap(filename); /*shows the picture.png */
                CreationDate = File.GetCreationTime(filename).ToString(); /*shows creationtime of picture*/
                Filelink = filename; /*shows filename opened*/
                FileName = Path.GetFileName(filename); /*shows opened file path*/
                /*Description = FileMode.Open.ToString(filename);*/


 private void Button1_Click(object sender, EventArgs e)
            {
    
                OpenFileDialog ofd = new OpenFileDialog
                {
                    Filter = "Image Files(*.BMP;*.JPG;*.GIF;*.PNG)|*.BMP;*.JPG;*.GIF;*.PNG|All files (*.*)|*.*"
                };
    
                if (ofd.ShowDialog() == DialogResult.OK)
                {
                    
                    try
                    {
                        Photo photoph = new Photo(ofd.FileName);
                        /*dataGridView1.Rows.Add(photoph.bitmap, photoph.FileName, photoph.Filelink, photoph.CreationDate);*/
                        listing.Add(ofd.FileName, dataGridView1);
                    }
                    catch
                    {
                        MessageBox.Show("Impossible to open file. Choose another one", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
    


Solution 1:[1]

If I understand correctly, you can use Multiselect property of OpenFileDialog. In this way you can open multiple file (in your case same file name with different extensions) and show them to users.

OpenFileDialog ofd = new OpenFileDialog{ Filter = "Image Files(*.BMP;*.JPG;*.GIF;*.PNG)|*.BMP;*.JPG;*.GIF;*.PNG|All files (*.*)|*.*"};

DialogResult dr = ofd.ShowDialog();
if (dr == System.Windows.Forms.DialogResult.OK)
{
    // Read the files
    foreach (var file in ofd.FileNames) 
    {
       // Do your things
    }
}

Solution 2:[2]

Thanks everyone. I already found solution and made it with Replace:

public Photo(string filename)
        {
            string s = "";
            s = filename.Remove(filename.Length-3, 3);
            s += "txt";
            FileStream fsIn = new FileStream(s, FileMode.Open,
           FileAccess.Read, FileShare.Read);
            using (StreamReader sr = new StreamReader(fsIn))
            {
                string input;
                while (sr.Peek() > -1)
                {
                    input = sr.ReadLine();
                    Description += input;
                }
                bitmap = new Bitmap(filename);
                CreationDate = File.GetCreationTime(filename).ToString();
                Filelink = filename;
                FileName = Path.GetFileName(filename);
                Description = File.ReadAllText(s);/*FileMode.Open.ToString(filename);*/
            }
        }

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 mehmetcantas
Solution 2