main参数啊!
int
main(int
argc,char
argv[])
{
printf(argv[0]);
return
0;
}
这样得到一个字符串,从中提取出路径不是难事,如果不行Q960575562
读取的代码方式如下:
intmain()
{
longfile;
struct_finddata_tfind;
_chdir("d:\\");
if((file=_findfirst("",&find))==-1L)
{
printf("空白!\n");
exit(0);
}
printf("%s\n",findname);
while(_findnext(file,&find)==0)
{
printf("%s\n",findname);
}
_findclose(file);
return0;
}
1、如果是在window环境下,可以用一下方法:
使用stdlibh头文件声明的system()函数,调用系统命令dir,把c:目录下文件列表写入文件dirtxt中
2、使用direnth头文件中声明的opendir(),readdir()函数;
3、如果没有direnth,可以使用ioh头文件中声明的_findfirst(),_findnext()函数:
int nIndex = m_myLocalResListCtrlGetSelectionMark();
if(nIndex>=0)
{
CString path = m_myLocalResListCtrlGetItemText(nIndex,3); // 获取路径
// 打开文件所在目录
ShellExecute(NULL,NULL,_T("explorer"), _T("/select, ")+path,NULL,SW_SHOW);
}
参考一下
C#读取文件路径
//获取包含清单的已加载文件的路径或 UNC 位置。
public static string
sApplicationPath = AssemblyGetExecutingAssembly ( )Location;
//result: X:\xxx\xxx\xxxdll (dll文件所在的目录+dll文件名)
//获取当前进程的完整路径,包含文件名(进程名)。
string str = thisGetType ( )AssemblyLocation;
//result: X:\xxx\xxx\xxxexe (exe文件所在的目录+exe文件名)
//获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名)。
string str = SystemDiagnosticsProcessGetCurrentProcess (
)MainModuleFileName;
//result: X:\xxx\xxx\xxxexe (exe文件所在的目录+exe文件名)
//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。
string str = SystemEnvironmentCurrentDirectory;
//result: X:\xxx\xxx (exe文件所在的目录)
//获取当前 Thread 的当前应用程序域的基目录,它由程序集冲突解决程序用来探测程序集。
string str = SystemAppDomainCurrentDomainBaseDirectory;
//result: X:\xxx\xxx\ (exe文件所在的目录+"\")
//获取和设置包含该应用程序的目录的名称。
string str =
SystemAppDomainCurrentDomainSetupInformationApplicationBase;
//result: X:\xxx\xxx\ (exe文件所在的目录+"\")
//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。
string str = SystemWindowsFormsApplicationStartupPath;
//result: X:\xxx\xxx (exe文件所在的目录)
//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。
string str = SystemWindowsFormsApplicationExecutablePath;
//result: X:\xxx\xxx\xxxexe (exe文件所在的目录+exe文件名)
//获取应用程序的当前工作目录(不可靠)。
string str = SystemIODirectoryGetCurrentDirectory ( );
//result: X:\xxx\xxx (exe文件所在的目录)
在系统服务中最好用这个方式去取路径
string stmp = AssemblyGetExecutingAssembly ( )Location;
stmp = stmpSubstring ( 0 , stmpLastIndexOf ( '\\' )
);//删除文件名
if ( pathType == 1 )
return stmp + @"\inputLogxml";
else if ( pathType == 2 )
return stmp + @"\MiddleDBxml";
else
return stmp + @"\AppNoxml";
using SystemIO;
string path = "d:asdfasdfbmp";
string fileName = PathGetFileName(path); //文件名
string ext = PathGetExtension(path); //扩展名
一般默认的目录是和你所遍的程序在同一个目录里如果你想改,那么只要在使用fopen函数的时候输入目录地址就可以了要注意的是一旦你这个程序生成了exe在脱离编译器运行的时你所定的目录就不能改变了也就是说你自能在写程序时定义一次目标文件的路径
TCHAR path[255];
SHGetSpecialFolderPath(0,path,CSIDL_DESKTOPDIRECTORY,0);
MessageBox(path);
如果是通过open方式打开的,那么第一个参数就是文件路径信息:
#include <sys/typesh>
#include <sys/stath>
#include <fcntlh>
int open(const char path, int oflag, / mode_t mode /);
如果是通过fopen方式打开的,那么第一个参数就是文件路径信息:
#include <stdioh>
FILE fopen(const char filename, const char mode);
无论通过open还是fopen打开文件,都必须先知道文件路径信息,尽管可能是相对路径。
如果知道了filename的内容,我们就可以定位它的绝对路径,也就是你说的完全路径。
1 filename本身就是绝对路径,ok。
2 filename是相对路径,那么先通过getcwd获取进程的执行路径,然后再获取绝对路径即可。
#include <unistdh>
extern char getcwd(char buf, size_t size);
但是,如果进程在打开文件后又执行了chdir、fchdir之类函数的话,估计就不能够再获取文件路径信息了。
#include <unistdh>
int chdir(const char path);
int fchdir(int fildes);
以上就是关于c语言怎么获得当前程序运行路径全部的内容,包括:c语言怎么获得当前程序运行路径、C语言怎么读取某一文件夹下的所有文件夹和文件、vs c++ 点击浏览按钮 如何获取路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)