Opening a File in C# using FileStream
24,393
Your code is miscommented
string directoryPath = Path.GetDirectoryName(chosenFile); // Returns the directory and the file name to reference the file
is not the filename, it's the directory path. You want:
FileStream InputBin = new FileStream(chosenFile, FileMode.Open,FileAccess.Read, FileShare.None);
Addtionally, if I were to guess based on your intentions, you should update your full function to be:
private void button1_Click(object sender, EventArgs e)
{
openFD.Title = "Insert a BIN file";
openFD.InitialDirectory = "C:"; // Chooses the default location to open the file
openFD.FileName = " "; // Iniitalizes the File name
openFD.Filter = "Binary File|*.bin|Text File|*.txt"; // FIlters the types of files allowed to by chosen
if (openFD.ShowDialog() != DialogResult.Cancel)
{
chosenFile = openFD.FileName;
richTextBox1.Text += chosenFile; //You may want to replace this with = unless you mean to append something that is already there.
FileStream InputBin = new FileStream(chosenFile, FileMode.Open,FileAccess.Read, FileShare.None);
}
}
Author by
Bubo
Updated on December 28, 2020Comments
-
Bubo over 3 years
I am trying to open a Binary file that I plan on converting to hex but I am running into issues with reading the file via FileStream,
private void button1_Click(object sender, EventArgs e) { openFD.Title = "Insert a BIN file"; openFD.InitialDirectory = "C:"; // Chooses the default location to open the file openFD.FileName = " "; // Iniitalizes the File name openFD.Filter = "Binary File|*.bin|Text File|*.txt"; // FIlters the types of files allowed to by chosen if (openFD.ShowDialog() != DialogResult.Cancel) { chosenFile = openFD.FileName; string directoryPath = Path.GetDirectoryName(chosenFile); // Returns the directory and the file name to reference the file string dirName = System.IO.Path.GetDirectoryName(openFD.FileName); // Returns the proper directory with which to refernce the file richTextBox1.Text += dirName; richTextBox1.Text += chosenFile; FileStream InputBin = new FileStream( directoryPath, FileMode.Open, FileAccess.Read, FileShare.None); } }
I am receiving an error saying that the access to the path is denied, any ideas?
Now that I have gotten that error taken care of I have ran into another Issue, I can read the binary file, but I want to display it as a Hex file, I'm not sure what I am doing wrong but I'm not getting an output in HEX, it seems to be Int values...
if (openFD.ShowDialog() != DialogResult.Cancel) { chosenFile = openFD.FileName; string directoryPath = Path.GetDirectoryName(chosenFile); string dirName = System.IO.Path.GetDirectoryName(openFD.FileName); using (FileStream stream = new FileStream(chosenFile, FileMode.Open, FileAccess.Read)) { size = (int)stream.Length; data = new byte[size]; stream.Read(data, 0, size); } while (printCount < size) { richTextBox1.Text += data[printCount]; printCount++; }
-
Bubo almost 12 yearschosenFile = openFD.FileName; richTextBox1.Text += chosenFile; - This appends the directory to the textbox, not the actual file
-
Jaime Torres almost 12 yearsI don't understand your question, but
FileDialog.FileName
returns the fully qualified path to the selected file, which includes the directory and filename.