创建一个fat16模型

时间:2011-12-14 03:33:11

标签: c++ c delphi pascal

我正在尝试在一个文件中创建一个模型FAT16文件系统,能够创建,查看,删除和复制文件和目录,但我是新手编程的任何人有关于我如何去做的想法吗?我想要的东西如下所示

type
  TFileRec = Packed Record
    ID: WORD; //id of item
    ParID: WORD; //parent id
    Name: String[8]; //name of item
    Ext: String[3]; //extension if any (type)
    Att: BYTE; //attributes (access modifiers, type, etc)
  end;

var
  FAT16: File of TFileRec;
  ItemCount: Integer;

2 个答案:

答案 0 :(得分:2)

SO用户Primoz Gabrijelcic查看Compound File implementation。它不是FAT16,但非常接近您所寻找的。

答案 1 :(得分:2)

我建议的方法是调整FAT 16实现以将文件用作硬盘介质。 FAT文件系统与硬盘的接口是系统级命令,如read_sectors和write_sectors,它们将512B缓冲区的倍数读/写到某些LBA地址。对于您的情况,您可以将读取扇区和写入扇区功能的调用替换为对文件的实际读写操作。

因此,通过更改这两个函数,您将使用文件访问替换媒体访问。

确切地说,对硬盘进行第三次系统级调用,返回媒体的大小,这里应该替换为假定充当媒体的最大文件大小。

可以在here

找到轻量级FAT实施