一般默认的目录是和你所遍的程序在同一个目录里如果你想改,那么只要在使用fopen函数的时候输入目录地址就可以了要注意的是一旦你这个程序生成了exe在脱离编译器运行的时你所定的目录就不能改变了也就是说你自能在写程序时定义一次目标文件的路径
目前创新互联建站已为成百上千的企业提供了网站建设、域名、雅安服务器托管、网站托管、企业网站设计、汪清网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
很简单:
API函数:
GetModuleFileName(模块句柄,保存的字符数组,字符数组的大小);
一般来说,要获取正在运行程序的全路径,那就在第一个参数写个0
参数2是保存的数组,获取的路径将保存在这个数组
参数三是字符数组的大小
给你一个示例程序:
#include windows.h
#include stdio.h
void main()
{
char ExePlace[1024];/*保存地址的数组/
GetModuleFileName(0,ExePlace,1024);/*获取当前运行全路径*/
puts(ExePlace);/*输出获取到的路径*/
}
这是我的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;
}
}
#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;
}
-----------
写成函数和调用:
#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;
}
网页名称:c语言获取当前路径函数 c语言获取当前路径函数怎么写
地址分享:https://www.cdcxhl.com/article8/ddcdeop.html
成都网站建设公司_创新互联,为您提供建站公司、外贸建站、云服务器、网站排名、品牌网站制作、品牌网站设计
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联