gpt4 book ai didi

c - 如何删除文件中的特定字符串/文件?

转载 作者:行者123 更新时间:2023-11-30 15:45:30 25 4
gpt4 key购买 nike

我现在正在熟悉 C,并且在删除另一个文件(系统)中的特定文件或字符串时遇到一些问题。

我本质上做的是构建一个虚拟文件系统,您可以在其中添加文件、搜索或删除它们。

我似乎无法让最后一部分工作,谷歌没有给我任何可用的结果(“如何删除c中的文件”)。

到目前为止我得到了什么:

void deleteFILE(){
FILE *f = fopen ("myfilesystem.nfo", "r+");
if(f == 0) {
perror("DANGER");
return;
}
char *del;
printf (" You deleted the file: %s", del);

}

如果有人可以帮助我或为我指明正确的方向,那就太好了。

最佳答案

您询问如何从文件中删除内容。有两种情况:

  1. 如果您希望删除文件中从某个位置到末尾的内容,则可以使用 truncateftruncate(如果您使用的是 POSIX 系统) 。非 POSIX 系统具有类似的函数来执行此任务,但据我所知,C 标准库中没有任何内容可以截断文件。

  2. 如果您想删除文件中间的内容,您需要将删除部分后面的文件内容复制到删除部分的顶部。然后您需要将文件截断到新的长度。

作为一个例子来说明这一点:

Pos:          0123456789File content: abcdefghij

假设您希望删除字节 7-9,hij。然后您只需将文件截断为长度 7。这是上面的场景 1。

如果您希望删除字节 2-6、cdefg,那么您将执行以下操作:

  • 将字节 7-9 复制到位置 2。
  • 将文件截断为长度 5。

关于c - 如何删除文件中的特定字符串/文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18984787/

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