gpt4 book ai didi

c# - 使用 FileStream 在 C# 中打开文件

转载 作者:太空狗 更新时间:2023-10-30 00:20:27 25 4
gpt4 key购买 nike

我正在尝试打开一个我计划转换为十六进制的二进制文件,但我遇到了通过 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);
}
}

我收到一条错误消息,指出对路径的访问被拒绝,有什么想法吗?

现在我已经解决了这个错误,我遇到了另一个问题,我可以读取二进制文件,但我想将它显示为十六进制文件,我不确定我做错了什么,但我我没有得到 HEX 输出,它似乎是 Int 值...

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++;
}

最佳答案

您的代码有错误注释

string directoryPath = Path.GetDirectoryName(chosenFile); // Returns the directory and the file name to reference the file

不是文件名,是目录路径。你想要:

FileStream InputBin = new FileStream(chosenFile, FileMode.Open,FileAccess.Read, FileShare.None);

此外,如果我根据您的意图进行猜测,您应该将您的完整功能更新为:

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);
}
}

关于c# - 使用 FileStream 在 C# 中打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11637370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com