導航:首頁 > 文件類型 > linuxc遍歷文件

linuxc遍歷文件

發布時間:2023-06-12 08:36:43

A. linux下C/C++怎樣編一個復制文件夾的程序

可以遞歸遍歷文件夾下所有文件,根據文件大小和修改時間進行判斷,把修改過的新版本覆蓋舊版本。

本人並沒有在Linux下編程的經驗,只能給出思路,你找找Linux的系統調用,裡面有需要文件操作功能,復制文件夾無非就是先創建文件夾,然後在把文件夾下的文件復制過來。對於文件夾內的文件夾,使用遞歸進行遍歷。

我想你對遞歸應該了解,如果不想用系統調用的話,在Linux下我記得命令mkdir是創建文件夾,cp是復制文件,這樣你可以在程序內使用system("mkdir 文件夾名")來進行創建文件夾,對應的可以用cp復制文件,不過這樣比用系統調用效率低點

另:個人理解,Linux的系統調用跟Windows的API比較類似

B. Linux下C語言:如何遍歷制定目錄及其子目錄下所有文件的文件名並將其按照最後修改時間排序呢

linux中有相關的API函數,可以讀取目錄中所有的文件名字,以及時間屬性信息,你把這些信息讀出來,利用各種排序演算法排序就可以了

C. 欲在Linux系統下使用終端編寫C語言程序,打算使用findfirst()、findnext()和fin

#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <io.h>

int
main(int argc, char *argv[])
{
intptr_t handle;
struct _finddata_t fileinfo;

handle = _findfirst("D:\\mymtom\\src\\demo\\*.c", &fileinfo);
if (handle == -1) {
屬perror("_findfirst");
exit(1);
}

printf("%s\n",fileinfo.name);
while (_findnext(handle, &fileinfo) == 0) {
printf("%s\n",fileinfo.name);
}

_findclose(handle);

return 0;
}

D. linux 腳本代碼出現問題

[ $count -gt 0 ]都需要空格的

E. linux shell 遍歷文件夾 並將結果保存 到變數

#!/bin/bash
(($#<1))&&echo"paramiszero!"&&exit1
[!-d$1]&&echo"$1notpath"&&exit1
dir=$1
dir_p="$dirDirectory:"
cd$dir
dir=`pwd`
foriin`ls$dir`
do
if[-d$i];then
/tmp/sh/dir_file$i#我的腳本文件在/tmp/sh中,需要改一下這里
else
dir_p="$dir_pFile$i"
fi
done
cd..
echo$dir_p


實驗結果:

[root@localhost sh]# ./dir_file /tmp/python/

python_2 Directory : File 1.log File 2.log

python_3 Directory : File 3.log

/tmp/python/ Directory : File p File t.py File y.py


這樣應該可版以吧,試試看權

F. linux C 中的文件夾遍歷dirent d_type表明該文件的類型 跪求~~~

enum

{

DT_UNKNOWN = 0,

# define DT_UNKNOWN DT_UNKNOWN

DT_FIFO = 1,

# define DT_FIFO DT_FIFO

DT_CHR = 2,

# define DT_CHR DT_CHR

DT_DIR = 4,

# define DT_DIR DT_DIR

DT_BLK = 6,

# define DT_BLK DT_BLK

DT_REG = 8,

# define DT_REG DT_REG

DT_LNK = 10,

# define DT_LNK DT_LNK

DT_SOCK = 12,

# define DT_SOCK DT_SOCK

DT_WHT = 14

# define DT_WHT DT_WHT

};

這是d_type的枚舉類型..........每個值表示一個類型..........4是目錄,0是未知,1是管道,2是字元設備,8表示文件...............6是塊設備..........其他的都如字面表示..........很容易區分.........

G. 如何在linux系統中用C語言編程實現以非遞歸的方式查詢指定目錄下所有子目錄的全部文件並保存文件名

把迭代得到的非文件文件夾項,即子目錄保存到一個stack中。
隨後逐個彈出棧頂元素並迭代之,就實現了以非遞歸方式遍歷文件夾。

H. linux下C語言怎麼統計某個目錄下的文件個數

#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <errno.h>
#include <string.h>

#define MAX 1024

int get_file_count(char *root)
{
DIR *dir;
struct dirent * ptr;
int total = 0;
char path[MAX];
dir = opendir(root); /* 打開目錄*/
if(dir == NULL)
{
perror("fail to open dir");
exit(1);
}

errno = 0;
while((ptr = readdir(dir)) != NULL)
{
//順序讀取每一個目錄項;
//跳過「..」和「.」兩個目錄
if(strcmp(ptr->d_name,".") == 0 || strcmp(ptr->d_name,"..") == 0)
{
continue;
}
//printf("%s%s/n",root,ptr->d_name);
//如果是目錄,則遞歸調用 get_file_count函數

if(ptr->d_type == DT_DIR)
{
sprintf(path,"%s%s/",root,ptr->d_name);
//printf("%s/n",path);
total += get_file_count(path);
}

if(ptr->d_type == DT_REG)
{
total++;
printf("%s%s/n",root,ptr->d_name);
}
}
if(errno != 0)
{
printf("fail to read dir"); //失敗則輸出提示信息
exit(1);
}
closedir(dir);
return total;
}

int main(int argc, char * argv[])
{
int total;
if(argc != 2)
{
printf("wrong usage/n");
exit(1);
}
total = get_file_count(argv[1]);
printf("%s ha %d files/n",argv[1],total);
return 0;
}

閱讀全文

與linuxc遍歷文件相關的資料

熱點內容
文件夾能容納多少張截圖 瀏覽:85
視頻文件查找 瀏覽:786
如何進入java的編程界面 瀏覽:371
二級開發者還有哪些app 瀏覽:241
app充值請聯系itunes 瀏覽:678
矢量app和cdr哪個好 瀏覽:85
系統文件壞了如何修復 瀏覽:20
鍵盤系統文件誤刪 瀏覽:738
白金英雄壇所有版本 瀏覽:842
ps文件轉hsj 瀏覽:382
哪個網站電影 瀏覽:490
ps4游戲文件格式名稱 瀏覽:290
caxa教程2007 瀏覽:832
新點是什麼小說網站 瀏覽:753
魔獸世界冰封王座3版本轉換器 瀏覽:418
蘋果3dtouch軟體 瀏覽:979
qq視頻在哪個文件夾裡面 瀏覽:740
請帖製作網站java源碼 瀏覽:257
自己的網站怎麼做兼職 瀏覽:608
醫院基礎數據是什麼 瀏覽:744

友情鏈接