相当于c#中的read
本文关键字:read 中的 相当于 | 更新日期: 2023-09-27 18:18:43
我正在将一些c++代码转换为c#的过程中,我正试图找出如何在我的c#应用程序中编写和遵循c++代码,并让它做同样的事情:
fread(&Start, 1, 4, ReadMunge); //Read File position
我已经尝试了多种方法,如使用FileStream:
using (FileStream fs = File.OpenRead("File-0027.AFS"))
{
//Read amount of files from offset 4
fs.Seek(4, SeekOrigin.Begin);
FileAmount = fs.ReadByte();
string strNumber = Convert.ToString(FileAmount);
fileamountStatus.Text = strNumber;
//Seek to beginning of LBA table
fs.Seek(8, SeekOrigin.Begin);
CurrentOffset = fs.Position;
int numBytesRead = 0;
while (Loop < FileAmount) //We want this to loop till it reachs our FileAmount number
{
Loop = Loop + 1;
//fread(&Start, 1, 4, ReadMunge); //Read File position
//Start = fs.ReadByte();
//Size = fs.ReadByte();
CurrentOffset = fs.Position;
int CurrentOffsetINT = unchecked((int)CurrentOffset);
//Start = fs.Read(bytes,0, 4);
Start = fs.Read(bytes, CurrentOffsetINT, 4);
Size = fs.Read(bytes, CurrentOffsetINT, 4);
Start = fs.ReadByte();
}
}
我一直遇到的问题是,Start/Size
不持有我需要的4字节的数据。
如果您正在读取二进制文件,您可能应该考虑使用BinaryReader。这样你就不用担心把字节数组转换成整数之类的。例如,您可以简单地调用reader.ReadInt32
来读取int。