簡體   English   中英

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

[英]c - How to delete specific strings/files in a file?

我現在已經熟悉C,並且在刪除另一個文件(系統)中的特定文件或字符串時遇到了一些問題。

我實質上要做的是構建一個虛擬文件系統,您可以在其中添加文件,搜索或刪除它們。

我似乎無法使最后一部分正常工作,並且google沒有給我任何可用的結果(“如何在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. 如果您希望從文件中的某個點刪除內容直到最后,如果您使用的是POSIX系統,則可以使用truncateftruncate 非POSIX系統具有類似的功能來執行此任務,但據我所知,C標准庫中沒有任何東西可以截斷文件。

  2. 如果要從文件的中間刪除內容,則需要將已刪除部分之后的文件內容復制到已刪除部分的頂部。 然后,您需要將文件截斷為新長度。

作為使該文件清晰的示例:

Pos:          0123456789
File content: abcdefghij

假設您希望刪除字節7-9,hij。 然后,您只需將文件的長度截短為7。這就是上面的方案1。

如果您希望刪除字節2-6,即cdefg,則可以執行以下操作:

  • 將字節7-9復制到位置2。
  • 截斷文件以使其長度為5。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM