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;
}
該解釋的在註釋裏面寫了,第二期搞定。