- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在努力读取硬盘的 FAT32 条目,到目前为止,通过使用 CreateFile
、ReadFile
和 已成功读取条目code>SetFilePointer
API。到目前为止,这是我的代码(用 C# 编写)。
---DLL导入------
[DllImport("kernel32.dll", SetLastError = true)]
static extern IntPtr CreateFile(string lpFileName, Int32 dwDesiredAccess,
Int32 dwShareMode, Int32 lpSecurityAttributes, Int32 dwCreationDisposition,
Int32 dwFlagsAndAttributes, IntPtr hTemplateFile);
[DllImport("kernel32.dll")]
static extern bool ReadFile(IntPtr hFile, byte[] lpBuffer,
uint nNumberOfBytesToRead, out uint lpNumberOfBytesRead, uint lpOverlapped);
[DllImport("kernel32.dll")]
extern static int SetFilePointer(IntPtr hFile, int lDistanceToMove, int lpDistanceToMoveHigh, uint dwMoveMethod);
[DllImport("kernel32.dll")]
extern static Boolean CloseHandle(IntPtr hObject);
------代码----将在任何 .NET 应用程序中工作--------
int ret, nread;
IntPtr handle;
int s = 512;
byte[] readbuffer = new byte[512];
IntPtr ptr = CreateFile(@"\\.\F:", -1073741824, 3, 0, 3, 128, IntPtr.Zero);
if (ptr != System.IntPtr.Zero)
{
int i = 100;
int ret = SetFilePointer(ptr, 0, 0, 0);
ret = SetFilePointer(ptr, 4194304, 0, 1);
while (true)
{
byte[] inp = new byte[512];
uint read = 0;
if (ret != -1)
{
ReadFile(ptr, inp, 512, out read, 0);
for (int k = 0; k < 16; k++)
{
string s = ASCIIEncoding.ASCII.GetString(inp, k*32, 11);
if (inp[k*32] == 0xE5)
{
MessageBox.Show(s);
}
}
//ret = SetFilePointer(ptr, 512, 0, 1);
}
}
}
上面的代码读取 F:\
驱动器,出于试用目的,我让它读取第一个文件目录簇并查询每个文件条目,如果文件已被删除则显示文件名.
但是我想把它变成一个成熟的应用程序,为此我将不得不经常使用字节数组并根据 FAT32 规范将其映射到指定的数据结构。
如何有效地使用我正在读取数据的字节数组?我已经使用文件流和 binaryreader 尝试了相同的代码并且它可以工作,但是现在假设我有一个类似 C 的结构
struct bios_data
{
byte id[3];
char name[11];
byte sectorpercluster[2];
...
}
我想在 C# 中有一个类似的数据结构,当我将数据读取到字节数组时,我想将它映射到该结构。我尝试了很多选项,但没有得到完整的解决方案。我尝试制作一个类并进行序列化,但这也没有用。我还有大约 3 个像 theese 这样的结构,我将在从 FAT 条目读取数据时使用它们。我怎样才能最好地达到预期的结果?
最佳答案
如果您想将二进制数据直接读入结构,C 风格,this article你可能会感兴趣。他围绕 C stdio 函数编写了一个非托管包装器并与其进行互操作。我试过了 - 它确实工作得很好。在 C# 中直接读入结构很好,而且速度很快。你可以这样做:
unsafe
{
fmp3.Read<MyStruct>(&myStructVar);
}
关于c# - C# 中用于读取 FAT32 的低级 C++ 样式 i/o,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1136414/
如何在页面内容对象流内的 PDF 页面上居中对齐文本。 从这个开始: q 0 Tr /Helv 12 Tf BT 1 0 0 1 10 10 Tm (Hello)Tj
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
我正在尝试用简单的工具编写自己的 printf。 这是 printf.c 的代码: #include "printf.h" uint8 pos_x=0, pos_y=0; void printf(ch
我正在尝试在 PDF 中呈现文本。我可以渲染基于矢量的图形,但我也想用文本来陪伴它。 在下面提供的测试代码中,文件(保存为 .pdf 时)将通过矢量图形绘制在左上角显示“测试”。 我想使用以下基于文本
有没有办法在比标准的“lua_pcall”函数调用更细粒度的级别上从 C/C++ 程序运行 Lua 代码?理想情况下,我希望能够遍历一系列低级字节码指令(假设它有这样的东西)并一个一个地运行它们,这样
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
这个问题在这里已经有了答案: Is short-circuiting logical operators mandated? And evaluation order? (7 个答案) 关闭 9 年
我想在 C# 中的单独线程上运行低级键钩来检测某些热键。我该怎么做? 最佳答案 如果你只需要这个键盘钩子(Hook)来检测热键,那么你不应该使用钩子(Hook)。 Windows 通过 Registe
我的应用程序索引最终用户计算机上所有硬盘驱动器的内容。我正在使用 Directory.GetFiles 和 Directory.GetDirectories 递归处理整个文件夹结构。我仅索引了几种选定
我们正在尝试通过多部分文件上传过程上传文件。通过使用下面给出的代码: while (!feof($file)) { $result = $s3->uploadPart(array( 'Buck
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我正在使用 STM32CubeMX 为 STM32F103 微 Controller 创建一个空白项目。使用 HAL 驱动程序(默认),我得到了一个运行速度非常快的闪烁示例,但我想尝试 LL(低级)驱
如何使用 GoogleAppEngine Low Level API 自动将实体 (com.google.appengine.api.datastore.Entity) 读取到对象中? 有没有什么神奇
我正在寻找在 Tensorflow 中使用 LSTM 单元的 RNN 的低级实现。我已经实现了几个使用低级 API 的前馈网络。这对我理解 ANN 的内部工作原理有很大帮助。我可以对 RNN 做同样的
更新:如果代码:我刚刚成功击败了自己的 32: void test(char *file_char, unsigned int size) { char* file_ = file_char;
作为一个小型(大型)业余爱好项目,我着手用 C# 制作一个(非常原始的)ssh-2.0 客户端。这是为了探索和更好地理解 DH 并帮助提高我对加密的熟悉度:) 根据 RFC 4253,我已经开始这样的
我正在尝试使用 Fuse 低级 API 实现基本文件系统。用于基本的读/写/mknod 操作。如果有人能指出一些示例,将不胜感激,没有关于 fuse 低级 api 的文档。 任何帮助将不胜感激! 最佳
我所拥有的是直接访问 Atmel CPU 上的四个 JTAG 接口(interface)引脚。 我需要的是低级 C 代码来调整这些引脚并实现两个功能: ReadMemoryWord(address)
我正在开发一个由多个部分组成的程序,这些部分相互构建。第一个程序必须从文件中读取内容并将由空格分隔的内容写入新文件。程序二应该采用这个单词,并根据它是以元音还是辅音开头的规则添加pig latin,并
我想对 yml 文件中的值进行一些处理。有人建议我使用snakeYAML的low-level API以此目的。因此,我使用它编写了一些代码,但由于以下原因,我几乎陷入困境。 这是我编写的代码: pub
我是一名优秀的程序员,十分优秀!