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 <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语言如何获得文件的创建时间以及文件的大小?(头文件及所用的函数,最好有用法举例)