Linux中文件和文件夹操作有所不同,这里写了个代码,实现了以下几个功能:
1 设置和显示当前工作路径;
2 显示工作路径下的子文件名称;
该解释的在注释里面写了,第二期搞定。
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;
}
该解释的在注释里面写了,第二期搞定。