首页 > 解决方案 > 如何在C中打开以file://开头的文件?

问题描述

我一直在用 C 语言开发一个fopen用于打开和读取文件的库。在某些情况下,传入一个以 开头的文件路径file://(例如file:///Users/<username>/Desktop/doc.txt),即使它是机器上的有效文件,也fopen无法打开该文件。

除了 之外,我还应该使用其他功能fopen吗?如果没有,我应该如何编辑文件路径才能正确打开?

(要清楚,相同的路径传入没有file://打开罚款)

标签: cmacosfilefilepath

解决方案


您只需要检查路径是否以“file://”开头,如果是,则从下一个字符开始传入字符串。

const char *prefix = "file://";
if (!strncmp(filename, prefix, strlen(prefix))) {
    fp = fopen(filename + strlen(prefix), "r");
} else {
    fp = fopen(filename, "r");
}

推荐阅读