c语言如何获得文件当前路径?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言如何获得文件当前路径?相关的知识,希望对你有一定的参考价值。

获得不包含本程序名的双斜杠路径,并用windows 文件资源管理器打开此路径,求头文件,求代码

C语言里
在main函数的第二个参数里面,
保存着当前程序运行的目录
也就是argv[0]
main( int argc, char *argv[])

printf("%s ", argv[0] );

就是文件当前所在位置
不过需要注意的一点是
这个路径里面保存了当前文件的文件名
如果你只是需要路径的话还需要自己操作一下

main(int a,char *c[])

char s[100];
int i;
//把路径保存到字符串s里
strcpy(s,c[0]);
for(i=strlen(s); i>0 ; i--)
if( s[i] == '\\')

s[i]='\0';
break;

//找到最后一个 \ 并删除之后的内容
//最后输出的s,就是当前文件的路径了
puts(s);
参考技术A

http://hi.baidu.com/andywangcn/item/7633efda5517baf9ca0c39c6

获得双斜杠路径不包含文件名

TCHAR _szPath[MAX_PATH + 1]=0;
GetModuleFileName(NULL, _szPath, MAX_PATH);
(_tcsrchr(_szPath, _T('\\\\')))[1] = 0;//删除文件名,只获得路径 字串
CString strPath;
for (int n=0;_szPath[n];n++)

if (_szPath[n]!=_T('\\\\'))
   
strPath +=_szPath[n] ;

else
   
strPath += _T("\\\\\\\\");


MessageBox(strPath);//输出==e:\\\\program\\\\Debug\\\\
//头文件用到 windows.h

追问

编译过不去。。。。全是错误。。。。

追答#include <iostream>
#include <Windows.h>
#include <tchar.h>


#ifdef MAX_PATH
#undef MAX_PATH
#endif

#define MAX_PATH 256


using namespace std;

int main()

TCHAR _szPath[MAX_PATH + 1]=0;
//获取当前文件的位置
GetModuleFileName(NULL, _szPath, MAX_PATH);
  cout<<_szPath<<endl;
int i,pos;
//寻找最后一个'\\\\'
for (i=0;i<MAX_PATH;i++)

if (_szPath[i]=='\\\\')

pos = i;


_szPath[pos]='\\0';
cout<<_szPath<<endl;
return 0;

追问

用windows 文件资源管理器打开此路径呢?你这个运行后是单斜杠路径,没法用system打开windows 文件资源管理器的。。。这个方法我用c试过了,在main括号里填点东西就能输出路径,关键是如何用windows 文件资源管理器打开此路径

c#中怎么获得当前路径

C#获取当前路径的方法如下:

1、System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
-获取模块的完整路径。

2、System.Environment.CurrentDirectory
-获取和设置当前目录(该进程从中启动的目录)的完全限定目录。

3、System.IO.Directory.GetCurrentDirectory()
-获取应用程序的当前工作目录。这个不一定是程序从中启动的目录啊,有可能程序放在C:\www里,这个函数有可能返回C:\Documents and Settings\ZYB\,或者C:\Program Files\Adobe\,有时不一定返回什么。

4、 System.AppDomain.CurrentDomain.BaseDirectory
-获取程序的基目录。

5、System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase
-获取和设置包括该应用程序的目录的名称。

6、System.Windows.Forms.Application.StartupPath
-获取启动了应用程序的可执行文件的路径。效果和2、5一样。只是5返回的字符串后面多了一个"\"而已。

7、System.Windows.Forms.Application.ExecutablePath
-获取启动了应用程序的可执行文件的路径及文件名,效果和1一样。
参考技术A AppDomain.CurrentDomain.BaseDirectory 参考技术B Response.Write(this.GetType());
Response.Write(this.GetType().Assembly.Location+"<br/>")获得当前路径
Response.Write(this.GetType().BaseType+"<br/>");
Response.Write(this.GetType().BaseType.Assembly.Location+"<br/>");获得父节点路径本回答被提问者和网友采纳
参考技术C Application.StartupPath

以上是关于c语言如何获得文件当前路径?的主要内容,如果未能解决你的问题,请参考以下文章

c语言如何获得文件的创建时间以及文件的大小?(头文件及所用的函数,最好有用法举例)

C语言 stat()函数获得文件大小需不需要打开文件?就是stat()函数是怎么获得文件的大小的?

C语言 如何通过文件指针获得文件名?

用c语言如何获取内存地址?

在c语言中如何获取当前日期?

在c语言中如何获取当前日期?