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

c獲取文件所在文件夾

發布時間: 2024-08-24 12:02:16

『壹』 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;
}
}

『貳』 易語言如何取文件所在的目錄

易語言取文件路徑步驟:

首先,准備好測試文件(文件隨意),這里不強求使用某個文件,只是為了配合此次測試而已。這里,就以一個txt文本文檔為例吧。

『叄』 c語言中如何得到當前文件所在位置

如果是通過open方式打開的,那麼第一個參數就是文件路徑信息:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *path, int oflag, /* mode_t mode */...);

如果是通過fopen方式打開的,那麼第一個參數就是文件路徑信息:
#include <stdio.h>
FILE *fopen(const char *filename, const char *mode);

無論通過open還是fopen打開文件,都必須先知道文件路徑信息,盡管可能是相對路徑。
如果知道了filename的內容,我們就可以定位它的絕對路徑,也就是你說的完全路徑。

1. filename本身就是絕對路徑,ok。
2. filename是相對路徑,那麼先通過getcwd獲取進程的執行路徑,然後再獲取絕對路徑即可。
#include <unistd.h>
extern char *getcwd(char *buf, size_t size);

但是,如果進程在打開文件後又執行了chdir、fchdir之類函數的話,估計就不能夠再獲取文件路徑信息了。
#include <unistd.h>
int chdir(const char *path);
int fchdir(int fildes);

『肆』 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++打開windows explorer,選擇文件,獲取文件或文件夾路徑

shellecute函數方法實現打開explorer,及打開一個目錄,進行選擇文件,獲取文件或文件夾路徑
GetCurrentDirectory 在一個緩沖區中裝載當前目錄
GetFullPathName 獲取指定文件的完整路徑名
看這樣API函數的使用方法實現你所需要的功能。

『陸』 C語言知道文件名如何獲取文件路徑

兩種方式:絕對路徑和相對路徑.
絕對路么要完整的路徑及文件名;
相對路徑與源程序在一個路徑下..

熱點內容
源碼車牌識別 發布:2025-01-13 19:49:06 瀏覽:974
inflateandroid 發布:2025-01-13 19:47:43 瀏覽:244
安卓電腦如何連手機熱點 發布:2025-01-13 19:40:52 瀏覽:142
pythonnumexpr 發布:2025-01-13 19:34:56 瀏覽:489
linuxpython版本查看 發布:2025-01-13 19:18:37 瀏覽:741
寶馬三系的哪個配置走量 發布:2025-01-13 19:12:14 瀏覽:697
區域網如何訪問伺服器 發布:2025-01-13 18:56:24 瀏覽:191
javaarraylist訪問 發布:2025-01-13 18:56:10 瀏覽:671
如何確定膠體是否配置成功 發布:2025-01-13 18:46:07 瀏覽:73
fgo緩存多大 發布:2025-01-13 18:42:13 瀏覽:972