通过文本文件中提供的文件名/路径检查文件是否存在?

Tenzeth

我有一个名为test.txt的文本文件,其中包含以下文本:

文件路径/Desktop/file.txt

我需要在文件路径一词之后获取路径,并检查该文件在文件系统中是否实际存在。

我已使用strchr()和strtok()从文本文件中提取“ /Desktop/file.txt”,并将其与access()函数一起使用以检查是否存在。但是,它从未真正起作用,并说它即使实际上确实存在也不每次都存在。

这是我的代码的一部分,以尝试使其正常工作。

char *buffer = 0;
long length;
FILE *getfile;
getfile = fopen("test.txt", "r");

if (getfile){
    fseek (getfile, 0, SEEK_END);
    length = ftell (getfile);
    fseek (getfile, 0, SEEK_SET);
    buffer = malloc (length);
    if (buffer){
        fread (buffer, 1, length, getfile);
        }
    fclose (getfile);
}

char *getfilepath = (strchr(buffer, 'filepath') + 2);

int filepathexists = access(getfilepath, F_OK);

if(filepathexists == 0){
    printf("The file exists.");
} else {
    printf("File does NOT exist.");
}
风向标

这应该做。使用读取文件输入,fgets()并使用来测试关键字strstr()通常strtok()将路径名与任何尾随newline隔离开来,但是由于路径可以包含空格,因此我一直谨慎地独立检查前导空格。注意:不要忘记free()分配的内存。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

int main(void)
{
    int filepathexists = 0;
    char *buffer, *sptr;
    const char *cue = "filepath";
    size_t length;
    FILE *getfile;
    getfile = fopen("test.txt", "r");
    if (getfile){
        fseek (getfile, 0, SEEK_END);
        length = ftell (getfile);                  // find file size
        fseek (getfile, 0, SEEK_SET);
        buffer = malloc (length + 1);              // allow for str terminator
        if (buffer){
            if (fgets(buffer, length + 1, getfile) != NULL) {
                sptr = strstr(buffer, cue);        // cue in correct place
                if (sptr == buffer) {
                    sptr += strlen(cue);           // skip past cue
                    while (*sptr == ' ')           // and leading spaces
                        sptr++;
                    sptr = strtok(sptr, "\r\n\t"); // isolate path from newlines etc
                    if (sptr) {
                        printf("The file is: %s\n", sptr);
                        if (access(sptr, 0) != -1) {
                            filepathexists = 1;
                        }
                    }
                }
            }
            free (buffer);
        }
        fclose (getfile);
    }

    if (filepathexists)
        printf("The file exists.\n");
    else
        printf("File does NOT exist.\n");
    return 0;
}

程序输出:

The file is: /Desktop/file.txt
The file exists.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在UNIX中分割文件并将文件名保存在文本文件中

来自分类Dev

如何针对每个单独的文件名从多个文本文件中提取数据?

来自分类Dev

从文件名中提取值并将其添加到文本文件中

来自分类Dev

如何从文本文件中提取文件路径?

来自分类Dev

检查文本文件是否过期

来自分类Dev

检查文本文件是否在末尾

来自分类Dev

检查变量是否是文本文件

来自分类Dev

使用Python替换文本文件中除文件名之外的所有文件路径

来自分类Dev

如何检查子文件夹文本文件是否存在

来自分类Dev

将文本文件中的Linux URI编码的文件名和路径转换为Windows路径

来自分类Dev

检查文件是否是bash中的文本文件

来自分类Dev

如何通过文件名(无扩展名)检查文件是否存在?

来自分类Dev

在Java中增加文本文件名

来自分类Dev

打印除文本文件中指定的文件名以外的文件名列表

来自分类Dev

在-和.mp3之间抓取文件名文本并通过管道传输到文本文件

来自分类Dev

批处理文件以逐行解析文本文件,然后检查该行是否存在于其他文本文件中

来自分类Dev

如何检查文本文件中是否存在日期和字符串

来自分类Dev

使用Java检查文本文件中是否已经存在输入

来自分类Dev

Python:如何检查文本文件中是否存在两个或多个给定的单词

来自分类Dev

C - 如何迭代文本文件并检查特定字符是否存在

来自分类Dev

在Unix中提供文件名是否有任何限制?

来自分类Dev

使用存储在文本文件列表中的文件名制作文件

来自分类Dev

遍历文件夹,然后遍历子文件夹并打印具有文本文件路径的文件名

来自分类Dev

Python检查列表项是否在文本文件中

来自分类Dev

是否可以检查输入文本文件的长度?

来自分类Dev

检查文本文件是否为空Python

来自分类Dev

检查文本文件是否为空

来自分类Dev

检查文本文件在C ++中的格式是否正确

来自分类Dev

如何检查文本文件是否已添加或打开

Related 相关文章

  1. 1

    在UNIX中分割文件并将文件名保存在文本文件中

  2. 2

    如何针对每个单独的文件名从多个文本文件中提取数据?

  3. 3

    从文件名中提取值并将其添加到文本文件中

  4. 4

    如何从文本文件中提取文件路径?

  5. 5

    检查文本文件是否过期

  6. 6

    检查文本文件是否在末尾

  7. 7

    检查变量是否是文本文件

  8. 8

    使用Python替换文本文件中除文件名之外的所有文件路径

  9. 9

    如何检查子文件夹文本文件是否存在

  10. 10

    将文本文件中的Linux URI编码的文件名和路径转换为Windows路径

  11. 11

    检查文件是否是bash中的文本文件

  12. 12

    如何通过文件名(无扩展名)检查文件是否存在?

  13. 13

    在Java中增加文本文件名

  14. 14

    打印除文本文件中指定的文件名以外的文件名列表

  15. 15

    在-和.mp3之间抓取文件名文本并通过管道传输到文本文件

  16. 16

    批处理文件以逐行解析文本文件,然后检查该行是否存在于其他文本文件中

  17. 17

    如何检查文本文件中是否存在日期和字符串

  18. 18

    使用Java检查文本文件中是否已经存在输入

  19. 19

    Python:如何检查文本文件中是否存在两个或多个给定的单词

  20. 20

    C - 如何迭代文本文件并检查特定字符是否存在

  21. 21

    在Unix中提供文件名是否有任何限制?

  22. 22

    使用存储在文本文件列表中的文件名制作文件

  23. 23

    遍历文件夹,然后遍历子文件夹并打印具有文本文件路径的文件名

  24. 24

    Python检查列表项是否在文本文件中

  25. 25

    是否可以检查输入文本文件的长度?

  26. 26

    检查文本文件是否为空Python

  27. 27

    检查文本文件是否为空

  28. 28

    检查文本文件在C ++中的格式是否正确

  29. 29

    如何检查文本文件是否已添加或打开

热门标签

归档