java linux 读取文件是否存在_linux下判断文件和目录是否存在
1、前言
工作中涉及到文件系统,有时候需要判断文件和目录是否存在。我结合APUE第四章文件和目录,总结一下如何正确判断文件和目录是否存在,方便以后查询。
2、stat系列函数
stat函数用来返回与文件有关的结构信息。stat系列函数有三种情况,分别对应文件名称、文件描述符和符号链接文件。stat结构描述了文件的属性,主要包括文件的类型、文件大小等等。详细stat结构如下所示:
1 structstat {
2 mode_t st_mode; //file type & mode(permissions)
3 ino_t st_ino; //i-node number(serial number)
4 dev_t st_dev; //device number(filesystem)
5 dev_t st_rdev; //device number for specials files
6 nlink_t st_nlink; //number of links
7 uid_t st_uid; //user ID of owner
8 gid_t st_gid; //group ID of owner
9 off_t st_size; //size in bytes, for regular files
10 time_t st_atime; //time of last access
11 time_t st_mtime; //time of last modification
12 time_t st_ctime; //time of last file status change
13 long st_blksize; //best I/O block size
14 long st_blocks; //number of 512-byte blocks allocated
15 };
我们可以通过stat获取文件的类型和文件大小等信息。文件类型有:普通文件、目录文件、块特殊文件、字符特殊文件、FIFO、套接字和符号链接。要想通过stat系列函数来判断文件或者目录是否存在,当执行stat函数,如果文件存在时,还需进一步判断该文件是普通文件还是目录文件。
stat系列函数错误返回-1,错误码存在errno中,errno取值如下:
1、ENOENT 参数file_name 指定的文件不存在
2、ENOTDIR 路径中的目录存在但却非真正的目录
3、ELOOP 欲打开的文件有过多符号连接问题, 上限为16 符号连接
4、EFAULT 参数buf 为无效指针, 指向无法存在的内存空间
5、EACCESS 存取文件时被拒绝
6、ENOMEM 核心内存不足
7、ENAMETOOLONG 参数file_name 的路径名称太长
3、access函数
access函数按照实际用户ID和实际组进行访问权限测试。函数原型为:
#include
int access(const char *pathname, int mode);
mode取值:
F_OK 测试文件是否存在
R_OK 测试读权限
W_OK 测试写权限
X_OK 测试执行权限
正确判断一个文件是否存在是用access函数,实现如下所示:
4、oepndir函数
opendir函数用来打开文件目录,成功返回指针,出错返回NULL。实现如下:
java linux 读取文件是否存在_linux下判断文件和目录是否存在相关推荐
- java linux 起多个进程_linux下tomcat启动后出现多个java进程
偶尔发现linux下tomcat启动后出现多个java进程,如下: 000 S 0 4789 1 0 85 0 - 75083 schedu pts/1 00:0 ...
- java excel转pdf linux,从JAVA直接读取EXCEL、WORD并生成PDF文件
从JAVA直接读取EXCEL.WORD并生成PDF文件 1.操作EXCEL和WORD文件 使用JAVA从EXCEL.WORD文件中读写数据,可以使用http://jexcelapi.sourcefor ...
- linux下判断文件和目录是否存在[总结]
原文地址为: linux下判断文件和目录是否存在[总结] 1.前言 工作中涉及到文件系统,有时候需要判断文件和目录是否存在.我结合APUE第四章文件和目录,总结一下如何正确判断文件和目录是否存在,方便 ...
- linux下判断文件是否存在,文件夹是否存在,是否有访问权限的方法
通常我们判断文件是否存在,就看文件是否能够访问到,如果能访问到,文件存在,访问不到,则文件不存在. 代码判断文件是否存在C++ 方法一: 使用access函数判断文件是否存在,以及文件的权限. acc ...
- 使用readFile方法读取文件的内容,并判断文件是否读取成功(node)
2.2 读取指定文件中的内容 1.fs.readFile()的语法格式 使用fs.readFile()方法,可以读取指定文件中的内容,语法格式如下: ...
- c语言c 检测某文件是否存在,C语言-判断文件是否存在
1 Linux access() access()函数用来判断用户是否具有访问某个文件的权限(或判断某个文件是否存 在). access 总揽: #include int access(const ...
- js下载文件并修改文件名 / js判断文件后缀
js下载文件并修改文件名 / js判断文件后缀 代码如下(示例): //handlerName:文件名 filePath:下载路径downloadFile (handlerName, filePath ...
- linux手动生成dump文件权限不足_linux下生成dump文件方法及设置
https://andyniu.iteye.com/blog/1965571 Linux中生成 Core Dump 文件的方法 1 什么是 Core Dump Core Dump 又叫核心转储.在程序 ...
- linux移动文件 rf参数_linux下文件的复制、移动与删除
查看centOS 版本 cat /etc/redhat-release 1,复制粘贴文件 cp [选项] 源文件或目录 目标文件或目录 2,剪切粘贴文件 mv [选项] 源文件或目录 ...
最新文章
- Oracle+jsp+Servlet的员工表的简单增删改查
- [转]分布式文件系统 MogileFS 安装手册
- 【首发】徐亦达团队新论文推荐:模限界矩阵分解
- [转] android获取手机信息大全
- 改变Jupyter的默认项目路径
- java web 请求跟踪_IT兄弟连 JavaWeb教程 Servlet会话跟踪 Cookie技术
- java十进制转十六进制
- (216)滤波器介绍
- Moonlight 2紧随Silverlight而来
- python函数回顾:abs()
- textarea标签的文字居中解决方法
- paip.提升用户体验----应用程序调用外部字体的应用..
- linux磁盘挂载特别慢,arch开机速度竟然是挂载磁盘拖慢了。。
- git squash 和 git rebase
- 如何选择crm客户管理系统
- ASP.NET 安全认证(二)——灵活运用 Form 表单认证中的 deny 与 allow 及保护 .htm 等文件...
- java广度优先爬虫示例_广度优先搜索与网络爬虫
- 识别INSB号码C语言如何讲述,探究机器码,深入研究C语言程序的机制
- c#窗体程序生成错误_创建一个没有窗口的程序 (C#) | 学步园
- 【python】pythonPTA编程练习2