替换类似于文件系统的文件结构中的文件?

2024-10-02 12:34:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个程序,提取并添加文件到xbox360的STFS文件。STFS结构是一个小型文件系统,它有哈希表、文件表等

提取文件非常简单。我有文件的起始块和文件中的块数量,所以我只需要找到块偏移量,读取块长度,然后作为文件发送出去。但是,当我需要替换或删除文件时会发生什么情况?我读过,在Windows和计算机上,文件实际上并没有被删除,它们只是从文件表中删除,当其他东西需要空间时,它们会被覆盖。当我在写一个文件时,如何找到一个足够大的块序列来保存它呢?这些块的长度是0x1000字节,并用空字节填充剩余的空间,因此一切都很顺利,但我想不出一种有效的方法来找到适合我要添加的文件的未使用的块范围。你知道吗

我目前的计划是重写删除或添加文件时的所有内容,这样我就不会有大量未使用的空间,而无法确定如何重写。有没有一个像NTFS或FAT32这样的文件系统的好介绍,我可以阅读,它将不需要几天的时间来理解,并将包含必要的信息来编写一个基本的文件管理器?你知道吗

结构引用:http://free60.org/STFS

编辑:在第二步,我将为表中的每个文件创建一个范围列表。即,基于大小的起始偏移和结束偏移。在查找要插入文件的打开范围时,我会从0开始,检查每个范围的结束开始或结束是否在要插入的文件所需的范围内。如果开始或结束在该范围内,我将移到另一个文件的结束偏移量的末尾。这比我最初的想法要好,但仍然显得效率低下。我必须对文件表中的每个文件进行多次比较。你知道吗


Tags: 文件方法程序数量字节windows计算机空间

热门问题