LinuxC/C++编程(2)—文件夹操作

Linux中文件和文件夹操作有所不同,这里写了个代码,实现了以下几个功能:
1 设置和显示当前工作路径;
2 显示工作路径下的子文件名称;

3 在工作路径下创建一个新的文件夹;

//============================================================================
// Name        : DiretoryTest.cpp
// Author      : Lin
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
#include <dirent.h>
#include <cstdio>
#include <sys/stat.h>
#include <string.h>
#include <unistd.h>
#define BUF_SIZE 100
using namespace std;

int main()
{
	/***********设置当前工作路径**************/
	char workSpace[BUF_SIZE];
	char* newSpace = "/home/lin/桌面";
	if (getcwd(workSpace,BUF_SIZE) != newSpace) //如果当前工作路径不是newSpace,则切换工作路径,getcwd()包含于<unistd.h>
		chdir(newSpace); //Linux C改变当前工作路径,包含于<unistd.h>
	cout << "The workspace has been changed to " << getcwd(workSpace, BUF_SIZE) << " now!" << endl;


	/***********显示当前工作路径下的文件名**************/
	DIR* currentDir = opendir(newSpace);//操作文件夹的函数,基本都包含于<dirent.h>,opendir返回一个DIR*目录指针,与文件指针类似
	if (currentDir == NULL)
	{
		cerr << "The path does not exist!" << endl;
		return -1;
	}


	dirent *Dirent;
	cout << "The directory includes following files:" << endl;
	while ((Dirent = readdir(currentDir)) != NULL) //readdir返回一个dirent指针,表示一个目录的子文件、目录
		cout << Dirent->d_name << endl; //Dirent->d_name表示,表示子文件、目录的文件名

	closedir(currentDir);

	/***********新建一个文件夹**************/
	char* newDirent = "/home/lin/桌面/newDirent";
	if (mkdir(newDirent, S_IRWXU) < 0)//makedir需要设置权限,设置方式open()函数一样
	{
		cerr << "creat directory failed!" << endl;
		return -1;
	}

	return 0;
}

该解释的在注释里面写了,第二期搞定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值