【发布时间】:2019-08-28 10:27:33
【问题描述】:
我试图用很多词来搜索它,但由于某种原因,我只得到了诸如“如何检查文件或目录是否存在”之类的问题的参考。 相反,我想检查给定文件是否位于给定目录中。
问题是文件、目录或两者都可以而且有时必须作为相对路径而不是绝对路径传递。
是否有任何 windows/unix 函数可以检查它?
【问题讨论】:
-
我无法理解其中的区别。使用文件路径检查文件是否存在是您确定文件是否位于该目录中的方法。如果它不“存在”,那么它就不在那里。你问的是不同的东西吗?
-
@MarkBenningfield 如果文件显示为绝对路径怎么办?它需要检测到并将其标记为路径和文件,或者将其与最后一个 `\` 与提供的路径进行比较(如果它是绝对路径)。
-
如果您使用某些函数将相对路径解析为绝对路径,请确保两者都已解析然后使用
strncpy,但我想知道是否有标准函数这样做。 -
绝对路径是文件路径。我所知道的几乎所有决定文件是否存在的 API 都使用绝对路径,因为这是文件的实际名称。为什么(以及如何)只使用文件名?
-
不需要标记它。所有检查函数都需要一个路径,该路径是绝对的或相对的,如果是相对的,则可能不包含任何斜杠(或反斜杠)。您是否需要区分常规文件和目录、符号链接、套接字、FIFO、字符和块特殊设备?还是名称只需要存在?能不能打开文件有关系吗?
标签: c file directory cygwin subdirectory