一般默認的目錄是和你所遍的程序在同一個目錄里如果你想改,那么只要在使用fopen函數(shù)的時候輸入目錄地址就可以了要注意的是一旦你這個程序生成了exe在脫離編譯器運行的時你所定的目錄就不能改變了也就是說你自能在寫程序時定義一次目標文件的路徑
目前創(chuàng)新互聯(lián)建站已為成百上千的企業(yè)提供了網(wǎng)站建設、域名、雅安服務器托管、網(wǎng)站托管、企業(yè)網(wǎng)站設計、汪清網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
很簡單:
API函數(shù):
GetModuleFileName(模塊句柄,保存的字符數(shù)組,字符數(shù)組的大小);
一般來說,要獲取正在運行程序的全路徑,那就在第一個參數(shù)寫個0
參數(shù)2是保存的數(shù)組,獲取的路徑將保存在這個數(shù)組
參數(shù)三是字符數(shù)組的大小
給你一個示例程序:
#include windows.h
#include stdio.h
void main()
{
char ExePlace[1024];/*保存地址的數(shù)組/
GetModuleFileName(0,ExePlace,1024);/*獲取當前運行全路徑*/
puts(ExePlace);/*輸出獲取到的路徑*/
}
這是我的TFTP程序中的一個函數(shù),是搜索當前盤符下的所有文件,包括文件的大小,并發(fā)送到客戶端,其中就有查找當前路徑下的文件,你自己挑一下,應該能完成你的需求。
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;
}
}
#include
stdio.h
main()
{
char
str[80]="d:\\files\\dataFiles\\data\\avatar.bmp";
//
單斜杠處填雙斜杠
int
L,i;
L
=
strlen(str);
for
(i=L-1;i=0;i--)
if
(str[i]
==
'\\')
{
str[i]
='\0';
break;};
//
去掉文件名就是路徑
printf("Path=
%s",str);
return
0;
}
-----------
寫成函數(shù)和調用:
#include
stdio.h
void
fun(char
*str){
int
L,i;
L
=
strlen(str);
for
(i=L-1;i=0;i--)
if
(str[i]
==
'\\')
{
str[i]
='\0';
break;};
}
main()
{
char
str[80]="d:\\files\\dataFiles\\data\\avatar.bmp";
fun(str);
printf("Path=
%s",str);
return
0;
}
網(wǎng)頁名稱:c語言獲取當前路徑函數(shù) c語言獲取當前路徑函數(shù)怎么寫
地址分享:http://bm7419.com/article8/ddcdeop.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供建站公司、外貿(mào)建站、云服務器、網(wǎng)站排名、品牌網(wǎng)站制作、品牌網(wǎng)站設計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)