`
bnmnba
  • 浏览: 292848 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

CDT+cygwin C++文件夹操作

 
阅读更多

环境:eclipse  + CDT +cygwin

前提:可以运行一个hello word的C project

功能:判断指定文件夹是否存在;创建指定多层文件夹。

预期跨平台代码:

 

#define _LINUX   1
//#define _WIN32   1

#ifdef _WIN32
#include <direct.h>
#include <io.h>
#elif _LINUX
#include <stdarg.h>
#include <sys/stat.h>
#endif

#ifdef _WIN32
#define ACCESS _access
#define MKDIR(a) _mkdir((a))
#elif _LINUX
#define ACCESS access
#define MKDIR(a) mkdir((a),0755)
#endif
#include  <io.h>
#include  <stdio.h>
#include  <stdlib.h>
#include <string.h>


int is_directory(const char *path) {
	/* Check for existence */
	if ((ACCESS(path, 0)) != -1) {
		/*printf( "File  exists \n" );
		 if( (access( path, 1 )) != -1 )
		 printf( "File  has read permission \n" );
		 if( (access( path, 2 )) != -1 )
		 printf( "File  has write permission \n" );*/
		return 1;
	} else {
		//printf( "File  not exists \n" );
		return 0;
	}
}
int create_directory(const char *path) {
	if (is_directory(path)) {
		printf("Directory existed\n");
		return 0;
	}

	char tmpPath[300];
	const char* pCur = path;

	memset(tmpPath, 0, sizeof(tmpPath));
	int pos = 0;
	while (*pCur++ != '\0') {
		tmpPath[pos++] = *(pCur - 1);
		if (*pCur == '/' || *pCur == '\0') {
			if (!is_directory(tmpPath) && strlen(tmpPath) > 0) {
				if (MKDIR( tmpPath ) == 0) {
					printf(tmpPath);
					printf("\n");
					printf("Success creating directory \n");
				} else {
					printf(tmpPath);
					printf("\n");
					printf("Error creating directory \n");
					return 0;
				}
			}
		}
	}
	//printf("Success creating directory all\n");
	return 1;

}

int main(void) {
	if (is_directory("/cygdrive/c/a/a")) {
		printf("dir exists \n");
	} else {
		printf("dir not exists \n");
		create_directory("/cygdrive/c/a/a");
	}
}

 

 

真正linux环境有待测试。

参考文章:

http://www.cnblogs.com/8586/archive/2013/01/04/2844216.html

http://blog.csdn.net/zmzsoftware/article/details/8612896

http://bbs.csdn.net/topics/110078934

 

分享到:
评论

相关推荐

    windows下配置eclipse+CDT+Cygwin调试平台

    在Windows操作系统上构建一个强大的C/C++开发和调试环境,我们可以使用Eclipse集成开发环境(IDE)配合CDT(C/C++ Development Tooling)插件和Cygwin工具集。以下是一个详细的步骤指南: 首先,确保你有Java ...

    getst源码编译-eclipse工程

    使用eclipse + CDT + cygwin环境,导入工程。 本工程功能 : 1. 生成 libGtest.a 静态库 。 libGtest.a 生成在 工程根目录下的 libGtest文件夹里面。 2. 利用生成libGtest.a 做单元测试。 入口函数为 工程根目录下...

    用Eclipse平台进行C_C++开发

    3. **CDT核心(CDT Core)**:提供核心模型、CDOM(C/C++ Object Model)和核心组件,是处理C/C++代码的基础。 4. **CDT UI**:包含了用户界面相关的组件,如视图、编辑器和向导,使得开发者能够更高效地进行编码和...

    Eclipse下的c/c++开发环境配置

    本文将详细介绍如何在 Windows 环境下配置 Eclipse 的 CDT(C/C++ Development Tools)插件,并设置必要的 Cygwin 工具链来支持 C/C++ 编程。 #### 一、安装 Cygwin 和 Eclipse CDT 1. **安装 Cygwin:** - ...

    eclipse 开发c/c++

    在 Eclipse 中安装 CDT 之后, 浏览至 File =&gt; New =&gt; Project,在那里,您将发现三个新的可用项目类型:C(“Standard C Make Project”)、C++(“Standard C++ Make Project”)和“Convert to C or C++ Projects...

    Android NDK Cygwin配置

    Cygwin提供了一个Unix-like的环境,使得开发者能够在Windows系统上无缝地使用这些工具,从而实现C/C++代码的编译。 ##### 2. 安装步骤详解 1. **下载安装程序**: - 访问Cygwin官网(http://www.cygwin.com)下载...

    Windows下用Eclipse搭建CC++开发环境

    CDT (C/C++ Development Toolkit) 是Eclipse中的C/C++插件,用于提供C/C++项目管理和构建支持。然而,CDT本身并不包含C/C++的编译器和调试器,这需要我们自行添加。 ##### 获取GNU toolchain 在Windows下,主要有...

    android_jni操作指南.pdf

    ### Android JNI 操作指南知识点详解 #### 一、概述 JNI (Java Native Interface) 是 Java 平台标准的一部分,它允许 Java 代码和其他语言写的代码进行交互。在 Android 开发中,通过 NDK (Native Development Kit)...

    android搭建jni环境的步骤

    - - 在Eclipse中安装C/C++开发工具CDT(C/C++ Development Toolkit),这将为Android JNI开发提供集成的编辑器和构建环境。可以选择在线安装,通过Eclipse的"Help" -&gt; "Install New Software" -&gt; "Add",然后输入...

    windows,eclipse,c++,cocos2dx游戏开发环境搭建

    5. **安装用于Eclipse纯C++项目编译的工具**(例如Mingw或Cygwin,因为使用ADT提供的编译器可能会导致项目错误,从而无法编译)。 #### 四、注意事项 在整个搭建过程中,需要注意的关键事项包括: - Cocos2dx提供...

    android jni开发指南

    - **Eclipse + CDT (C/C++ Development Toolkit)**:集成开发环境,支持 Java 和 C/C++ 代码的编辑和调试。 - **JDK (Java Development Kit)**:用于 Java 代码的编译和运行。 #### 三、安装 Cygwin 1. **下载安装...

    Eclipse配置NDK环境

    因此,可以通过关闭CDT(C/C++ Development Tooling)编译器来避免不必要的编译,提高开发效率。如果需要重新编译本地代码,只需重新勾选CDT编译器即可。 在配置环境时,还要注意Eclipse的偏好设置(Preferences)...

    Eclipse Android NDK JNI 详细开发流程

    1. **Eclipse SDK 3.6.1**:包括必要的ADT(Android Development Tools)和CDT(C/C++ Development Tools)插件。 2. **Cygwin**:为Windows系统提供Unix-like的运行环境,便于执行Unix命令。 3. **JDK 1.6.0.10**:设置...

Global site tag (gtag.js) - Google Analytics