- 浏览: 2036456 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (651)
- ACE (35)
- BAT (9)
- C/C++ (116)
- fast-cgi (14)
- COM (27)
- python (59)
- CGI (4)
- C# (2)
- VC (84)
- DataBase (29)
- Linux (96)
- P2P (6)
- PHP (15)
- Web (6)
- Memcached (7)
- IME输入法 (11)
- 设计模式 (2)
- 搜索引擎 (1)
- 个人情感 (4)
- 笔试/面试 (3)
- 一亩三分地 (33)
- 历史 (2)
- 地理 (1)
- 人物 (3)
- 经济 (0)
- 不仅仅是笑哦 (43)
- 小故事大道理 (2)
- http://www.bjdsmyysjk120.com/ (0)
- http://www.bjdsmyy120.com/ (0)
- 它山之石可以攻玉 (15)
- 大学生你关注些什么 (28)
- 数据恢复 (1)
最新评论
-
luokaichuang:
这个规范里还是没有让我明白当浏览器上传文件时,STDIN的消息 ...
FastCGI规范 -
effort_fan:
好文章!学习了,谢谢分享!
com技术简介 -
vcell:
有错误os.walk(strPath)返回的已经是全部的文件和 ...
通过python获取目录的大小 -
feifeigd:
feifeigd 写道注意:文章中的CPP示例第二行 #inc ...
ATL入门:利用ATL编写简单的COM组件 -
feifeigd:
注意:文章中的CPP示例第二行 #include " ...
ATL入门:利用ATL编写简单的COM组件
#include <fstream>
using namespace std;
#define FILENAME "stat.dat"
int main()
{
fstream _file;
_file.open(FILENAME,ios::in);
if(!_file)
{
cout<<FILENAME<<"没有被创建";
}
else
{
cout<<FILENAME<<"已经存在";
}
return 0;
}
函数名: access
功 能: 确定文件的访问权限
用 法: int access(const char *filename, int amode);
以前一直没用过这个函数,今天调试程序发现了这个函数,感觉挺好用,尤其是判断一个文件或文件夹是否存在的时候,用不着再find了,文件的话还可以检测读写权限,文件夹的话则只能判断是否存在,下面摘自MSDN:
int _access( const char *path, int mode );
Return Value
Each of these functions returns 0 if the file has the given mode. The function returns –1 if the named file does not exist or is not accessible in the given mode; in this case, errno is set as follows:
EACCES
Access denied: file’s permission setting does not allow specified access.
ENOENT
Filename or path not found.
Parameters
path
File or directory path
mode
Permission setting
Remarks
When used with files, the _access function determines whether the specified file exists and can be accessed as specified by the value of mode. When used with directories, _access determines only whether the specified directory exists; in Windows NT, all directories have read and write access.
mode Value Checks File For
00 Existence only
02 Write permission
04 Read permission
06 Read and write permission
Example
/* ACCESS.C: This example uses _access to check the
* file named "ACCESS.C" to see if it exists and if
* writing is allowed.
*/
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
void main( void )
{
/* Check for existence */
if( (_access( "ACCESS.C", 0 )) != -1 )
{
printf( "File ACCESS.C exists " );
/* Check for write permission */
if( (_access( "ACCESS.C", 2 )) != -1 )
printf( "File ACCESS.C has write permission " );
}
}
Output
File ACCESS.C existsFile ACCESS.C has write permission
3.在windows平台下用API函数FindFirstFile(...):
(1)检查文件是否存在:
#include "windows.h"
int
main(int argc, char *argv[])
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
printf ("Target file is %s. ", argv[1]);
hFind = FindFirstFile(argv[1], &FindFileData);
if (hFind == INVALID_HANDLE_VALUE) {
printf ("Invalid File Handle. Get Last Error reports %d ", GetLastError ());
} else {
printf ("The first file found is %s ", FindFileData.cFileName);
FindClose(hFind);
}
return (0);
}
(2)检查某一目录是否存在:
bool CheckFolderExist(const string &strPath)
{
WIN32_FIND_DATA wfd;
bool rValue = false;
HANDLE hFind = FindFirstFile(strPath.c_str(), &wfd);
if ((hFind != INVALID_HANDLE_VALUE) && (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
rValue = true;
}
FindClose(hFind);
return rValue;
}
4.使用boost的filesystem类库的exists函数
#include <boost/filesystem/path.hpp>
#include <boost/filesystem/convenience.hpp>
int GetFilePath(std::string &strFilePath)
{
string strPath;
int nRes = 0;
//指定路径
strPath = "D:\myTest\Test1\Test2";
namespace fs = boost::filesystem;
//路径的可移植
fs::path full_path( fs::initial_path() );
full_path = fs::system_complete( fs::path(strPath, fs::native ) );
//判断各级子目录是否存在,不存在则需要创建
if ( !fs::exists( full_path ) )
{
// 创建多层子目录
bool bRet = fs::create_directories(full_path);
if (false == bRet)
{
return -1;
}
}
strFilePath = full_path.native_directory_string();
return 0;
}
发表评论
-
Berkeley DB 使用经验总结
2012-08-27 14:41 3086作者:陈磊 NoSQL是现在互联网Web2.0时代备受 ... -
嵌入式数据库系统Berkeley DB
2012-08-27 14:37 1533前言 UNIX/LINUX平台下的数据库种类非常多 ... -
C语言中标准输入流、标准输出流、标准错误输出流
2011-06-13 14:32 9293C语言中标准输入流、标准输出流、标准错误输出流 在 ... -
Rsync 实现原理
2011-05-12 20:06 8319Rsync 实现原理 前言 关于rsync的原始文档 ... -
c++简单的虚函数测试
2011-04-27 14:25 1020#include <iostream> u ... -
C++文件行查找
2011-04-26 14:10 1408#include <iostream> # ... -
c++偏特化简单示例
2011-04-13 11:17 2156c++偏特化 // temp1.c ... -
GDB调试精粹及使用实例
2011-03-16 14:06 1141GDB调试精粹及使用实例 一:列文件清单 1. ... -
简单的ini文件解析
2011-02-12 16:36 1623int GetKeyVal(const string s ... -
scanf族函数高级用法
2011-01-25 16:00 2562如何解释 fscanf(fd,&quo ... -
使用scons替代makefile(1)
2011-01-25 11:58 3733早在多年前我刚开始接触linux下的C程序时,经常被makef ... -
使用scons替代makefile(2)
2011-01-25 11:57 3584本篇文章接着上一篇进一步介绍scons的使用方法,主要介绍静态 ... -
使用scons替代makefile(3)
2011-01-25 11:55 4821在上两篇文章中已经简单介绍了用scons编译库文件,可执行程序 ... -
C 支持动态添加测试数据的测试代码
2011-01-13 17:22 1120/下面的定义为了支持可扩增。 //当需要增加一个新的测试用列 ... -
Linux下Makefile的automake生成
2010-12-28 16:55 1102******************helloworld.c* ... -
SCons笔记(详细版)
2010-12-23 16:11 105421. 基本使用 SConstruct文件就功能而言相当于Ma ... -
scons 学习
2010-12-23 11:14 2181scons 学习 作者:Sam(甄峰) sam_code@h ... -
scons随笔
2010-12-22 20:20 4707scons随笔 Scons是新一代的软件构件工具,或者说ma ... -
Scons在linux下的安装和使用
2010-12-21 11:59 3286因为正在用的一个开源软件需要的Developm ... -
排列组合的实现
2010-12-20 12:41 1063简单算法: 从前往后(或者从后往前)每次交换一个位置。当存在 ...
相关推荐
总结,C/C++中判断文件或目录存在的方法多种多样,可以根据具体的需求和目标平台选择合适的方法。`fstream`适合简单判断,而`access()`、`stat()`和Boost库的`exists()`则提供了更详细的文件状态信息和更多的功能。...
本文将详细介绍两种常用的判断文件是否存在的方法:第一种是使用`fstream`类来尝试打开文件;第二种是调用C标准库中的`access`函数。 #### 方法一:使用`fstream`类 这种方法基于`fstream`流类,通过尝试以输入...
在C/C++编程语言中,判断一个文件是否存在是常见的需求之一。这通常涉及到对操作系统API的调用,以便检查文件系统中的文件状态。根据提供的文件信息,“cc++中判断一个文件是否存在的方法”这一主题主要关注了五种...
另一种方法是使用C语言中的`access`函数,该函数可以用来检测文件的访问权限,同时也可用于判断文件是否存在。此方法的优势在于它可以更灵活地检测文件的访问权限,而不仅仅是判断文件是否存在。 下面是使用`access...
3. **文件属性**:学习如何判断文件是否为子目录或普通文件。 4. **路径字符串处理**:掌握如何处理路径字符串,构建子目录的完整路径。 5. **错误处理**:处理可能出现的错误情况,如目录不存在等。 #### 代码详解...
《高质量C/C++编程指南》是一本全面而实用的手册,不仅涵盖了C/C++语言的基础知识,还深入探讨了编程实践中遇到的各种问题及其解决方案。无论是对于初学者还是经验丰富的开发者,都能从中受益匪浅。通过遵循这些建议...
C++判断文件是否存在 C++中判断文件是否存在有多种方法,这篇文章将介绍其中的两种方法。 第一种方法:使用fstream库 使用fstream库可以判断文件是否存在,该方法非常简单。首先,需要包含iostream和fstream...
在C/C++编程领域,笔试题常常用于评估应聘者的编程基础、问题解决能力和逻辑思维能力。下面我们将深入探讨这些题目中可能涉及的关键知识点,并通过分析`test01`这个文件名,推测它可能涵盖的内容。 1. **基本语法**...
《C/C++中文手册》是为C++和C语言学习者提供的重要参考资料,特别是其中包含了C++17标准,这是C++发展的一个重要里程碑。C++17在之前的C++11和C++14标准基础上,引入了更多优化和新特性,使得编程更加高效、简洁。 ...
本压缩包“VScode C/C++配置文件及CMake工程.rar”包含了在VScode中配置C/C++开发环境以及使用CMake构建系统所需的相关文件。下面将详细阐述如何利用这些资源进行高效开发。 1. **VScode C/C++扩展配置**:VScode的...
根据给定文件中的信息,“C/C++面试大全 华为面试”这份资料主要涵盖了C/C++语言的基础知识以及华为公司对于这些知识点的具体面试题目。通过分析描述和部分内容,我们可以总结出以下几方面的知识点: ##### 1. ...
- **`extern "C"` 的功能**:在C++中,为了兼容C语言的函数和变量,我们可以使用`extern "C"`关键字来声明外部链接的符号(即函数或变量)。这样做可以让C++编译器按照C语言的方式进行链接,而不是默认的C++名称修饰...
在C/C++编程中,遍历一个文件夹下的所有TXT文件并检查它们是否包含特定字符是一项常见的任务,特别是在处理大量文本数据时。这个任务涉及到文件系统操作、文件I/O以及字符串处理等多个知识点。以下是一个详细的步骤...
c/c++ windows 通过winrt操作ble 蓝牙 #include #include #include <winrt/Windows.Foundation.h> #include <winrt/Windows.Foundation.Collections.h> #include <winrt/Windows.Devices.Bluetooth.h> #include ...
从给定的文件信息中,我们可以提炼出一系列与C/C++相关的知识点,这些知识点涵盖了面试题目的设计、数据结构、算法、操作系统基础以及面试策略等多个方面。以下是对这些知识点的详细解析: ### C/C++基础知识 1. *...
在IT行业中,C++是一种强大的编程语言,广泛用于系统软件、游戏引擎、设备驱动程序以及高性能计算等场景。本文将详细介绍如何使用C++对ZIP文件进行压缩和解压缩操作,同时提供一个基于ZipLib库的封装示例。ZipLib是...
在软件开发过程中,尤其是涉及到版权保护和源码管理时,可能会有需求清除C或C++源代码中的空行和注释。这样的操作有助于减少代码体积,保护源码隐私,同时在统计代码行数时,可以更准确地反映出实际编写的有效代码量...