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;
}

該解釋的在註釋裏面寫了,第二期搞定。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章