當前位置:首頁 » 文件管理 » c獲取所有文件夾

c獲取所有文件夾

發布時間: 2022-08-20 00:59:15

⑴ VC環境中用c語言查找當前路徑下的所有文件和文件夾的函數是什麼

這是我的TFTP程序中的一個函數,是搜索當前盤符下的所有文件,包括文件的大小,並發送到客戶端,其中就有查找當前路徑下的文件,你自己挑一下,應該能完成你的需求。
void FileList(sockaddr_in sour_addr,char strStartDir[])
{
char sendbuffer[1024];
sockaddr_in destaddr;

int sourlen = 0;
int ret = 0;
int len = 0;
int flen = 0;

fd_set fdr;

unsigned short blocknum = 0;

FILE *file;
char filename[128];

strcpy(filename,strStartDir+2); /*獲取文件名*/

strcat(filename,"\\*");
destaddr.sin_family = AF_INET;
destaddr.sin_port = sour_addr.sin_port;
destaddr.sin_addr.s_addr = inet_addr(desthost);//

WIN32_FIND_DATA FindFileData;
HANDLE hFind;
hFind = FindFirstFile(filename, &FindFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
printf ("Invalid File Handle");
}
else
{
while(FindNextFile(hFind,&FindFileData))
{
printf(FindFileData.cFileName);
printf("\r\n");
memset(sendbuffer,'\0',1024);

len = filldata(blocknum++,FindFileData.cFileName,strlen(FindFileData.cFileName),sendbuffer,sizeof(sendbuffer));
ret = sendto(serverSock,sendbuffer,len,0,(sockaddr *)&destaddr,sizeof(destaddr));

}
len = fillover(blocknum,"Over",4,sendbuffer,sizeof(sendbuffer));
ret = sendto(serverSock,sendbuffer,len,0,(sockaddr *)&destaddr,sizeof(destaddr));
FindClose(hFind);
return;
}
}

⑵ c語言 怎樣獲取文件夾中的所有文件

較簡單的是用DOS命令 DIR 並轉向到一個文件,再打開文件讀出一個一個文件名。
例如:
char my_cmd[80] = "DIR/B/A-D D:\\USER\\WANG >> abc.lis";
system( cmd);
你就獲得D:\\USER\\WANG 文件夾中的所有文件,選項意思是 只列 文件名,並按字母排列。
>> abc.lis 轉向,存入文件 abc.lis
接著,你可以 用FILE *fp; fp = fopen("abc.lis","r"); 打開文件
用 fgets() 讀文件名。

⑶ c語言實驗:查找c盤中的所有文件夾,對於子文件夾中的文件也要進行查找輸出。

優化了一下,但還是有bug,需要細查
#include<io.h>
#include<stdio.h>
#include<string.h>
#define_A_SUBDIR0x10/*Subdirectory*/

voidsearch(char*str1)
{
longflag1=0;
longhandle1;
chars1[]="\",s2[]="*.*",s3[100],name[100];
struct_finddata_tffblk1;

strcat(str1,s1);strcpy(s3,str1);strcat(str1,s2);
handle1=_findfirst(str1,&ffblk1);
while(!flag1)
{
if(strcmp(ffblk1.name,".")&&strcmp(ffblk1.name,".."))
{
if(ffblk1.attrib==_A_SUBDIR){
printf("%sisasub-directory ",ffblk1.name);
strcpy(name,ffblk1.name);
strcat(s3,name);
search(s3);
}
else{
printf("%s ",ffblk1.name);
}
}
flag1=_findnext(handle1,&ffblk1);
}
}

voidmain()
{
// struct_finddata_tffblk;
charstr[200]="C:";//必須是數組,不然空間不夠
search(str);
}

⑷ 如何用C語言獲取目錄下的文件和目錄列表

1、可以利用getenv函數來實現。
在Linux系統中,home目錄的定義是通過系統環境變數中的HOME變數值來確定的,在shell下可以通過
echo $HOME來查看。
而在C語言中,庫函數getenv可以用作獲取環境變數值。該函數位於stdlib.h, 原型為
char *getenv(char *name);
功能為獲取名字為name的環境變數字元串。
所以,下面代碼就可以獲取到home目錄名了:
2、常式:
char *home;
home = getenv("HOME");
printf("the home path is %s\n", home);

⑸ c#怎麼獲取某個路徑下的所有文件夾

如果這個目錄及下面的文件是你運行時所必須的,你應該復制到bin下面去,然後用相對路徑載入。
如果是一些外部的資源。並且將來部署可能會變化。應該把絕對路徑放到配置文件中去。

熱點內容
給字元加密 發布:2025-05-13 22:12:32 瀏覽:971
資料庫系統實現答案 發布:2025-05-13 22:11:57 瀏覽:139
哪個軟體可以共存安卓 發布:2025-05-13 22:10:15 瀏覽:552
上傳宦妃天下野泉肉肉 發布:2025-05-13 22:10:10 瀏覽:408
洗眼睛解壓 發布:2025-05-13 21:58:28 瀏覽:272
c存儲指針 發布:2025-05-13 21:49:04 瀏覽:921
結繩編程軟體 發布:2025-05-13 21:49:03 瀏覽:850
解壓體育館 發布:2025-05-13 21:27:48 瀏覽:263
哪家編程課 發布:2025-05-13 21:27:04 瀏覽:895
為什麼文件要壓縮 發布:2025-05-13 21:16:07 瀏覽:50