C语言 检查文件是不是存在

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 检查文件是不是存在相关的知识,希望对你有一定的参考价值。

参考技术A C语言中access函数  功能:确定文件或文件夹的访问权限。即,检查某个文件的存取方式,比如说是只读方式、只写方式等。如果指定的存取方式有效,则函数返回0,否则函数返回-1。  用法: int access(const char *filenpath, int mode); 或者int _access(const char *path, int mode );  参数说明:  filenpath  文件或文件夹的路径,当前目录直接使用文件或文件夹名  备注:当该参数为文件的时候,access函数能使用mode参数所有的值,当该参数为文件夹的时候,access函数值能判断文件夹是否存在。在WINNT 中,所有的文件夹都有读和写权限  mode  要判断的模式  #defineR_OK 4  #defineW_OK 2  #defineX_OK 1  #defineF_OK 0  具体含义如下:  R_OK只判断是否有读权限  W_OK只判断是否有写权限  X_OK判断是否有执行权限  F_OK只判断是否存在本回答被提问者采纳

在 JSP 中包含/导入文件之前,如何检查文件是不是存在?

【中文标题】在 JSP 中包含/导入文件之前,如何检查文件是不是存在?【英文标题】:How can you check if a file exists before including/importing it in JSP?在 JSP 中包含/导入文件之前,如何检查文件是否存在? 【发布时间】:2011-02-07 03:42:39 【问题描述】:

假设 requestScope.importMe 需要一个 JSP 文件的路径

<c:choose>
    <c:when test="$!empty requestScope.importMe && fileExists(requestScope.importMe) ">
    <c:import url="$requestScope.importMe" />   
    ...
</c:choose>

如何在尝试包含文件之前检查文件是否存在,以免引发错误?

我更喜欢使用 JSTL 标签的解决方案。

【问题讨论】:

【参考方案1】:

把它放在c:catch 标签中。它会为你捕获任何抛出的Exception

<c:catch var="e">
    <c:import url="$url" />
</c:catch>
<c:if test="$!empty e">
    Error: $e.message
</c:if>

但我必须承认我不喜欢c:catch 方法。它滥用异常来控制流程。如果可以的话,不如在 servlet 或 JavaBean 中完成这项工作,而不是在 File#exists()(和 ServletContext#getRealPath())的帮助下。

【讨论】:

嗨@BalusC!我也在寻找你的答案中给出的那种实现。我在 SO 帖子上进行搜索,但我认为您的回答是实现我的需求的最简单方法,我不确定对已经提出的问题重新提出问题。我需要在 jstl 中导入动态 url:我尝试加载特定区域的 url(例如:./3/myJspx.jspx,如果找不到文件,它会回退到默认区域 jspx:./myJspx .jspx .. 鉴于您的答案已经过去了很长时间,同时,您是否提出了任何其他解决方案或有任何其他提示?【参考方案2】:

@BalusC 很聪明,很可能回答了这个问题。

但是,要完整地说,标准 JSTL 中的任何内容都不能满足您的要求,但您当然可以创建自己的 EL 函数来进行检查。显然,您需要为它编写 Java,但它不是内联在您的 JSP 中。

J2EE 1.4 教程中有一个section 用于创建您自己的 EL 函数。

【讨论】:

这个***问题解释了制作你自己的java的细节......***.com/questions/16788790/… @WillHartung:上面的部分链接不再深入到您所指的部分(我认为)。如果不是太大,您能否将答案的主要部分包含在问题中,或者修复链接?

以上是关于C语言 检查文件是不是存在的主要内容,如果未能解决你的问题,请参考以下文章

C语言判断指定文件是不是存在

c语言 检查输入是不是合法

C语言查询数据是不是存在

C语言中access函数

c语言编写一个程序后,为啥编译是是文件不存在,要如何调节?

C#语言进阶——2.C# 的 I/O 操作