vc怎样获取文件路径

vc怎样获取文件路径,第1张

这个简单:

在Button的点击函数中加入如下代码

CFileDialog Open(TRUE,"bmp",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"Bitmap Files (bmp)|bmp|JPEG Files (jpg)|jpg|All Files ()|||",NULL););

if(OpenDoModal()==IDOK)

{

strPath=OpenGetPathName();//这就是你要的路径了。

}

"Bitmap Files (bmp)|bmp|JPEG Files (jpg)|jpg|All Files ()|||"

这一串是文件过滤器,就是在列表中显示什么扩展名的文件。

1、可以利用getenv函数来实现。

在Linux系统中,home目录的定义是通过系统环境变量中的HOME变量值来确定的,在shell下可以通过

echo $HOME来查看。

而在C语言中,库函数getenv可以用作获取环境变量值。该函数位于stdlibh, 原型为

char getenv(char name);

功能为获取名字为name的环境变量字符串。

所以,下面代码就可以获取到home目录名了:

2、例程:

char home;

home = getenv("HOME");

printf("the home path is %s\n", home);

win7 + vs2008 下通过:

#include <commdlgh>

#include <shlobjh>

///

//获取文件路径对话框 (树目录,可以同时打开文件夹和文件) 

//回调函数BrowseCallbackProc用于指定初始化目录为szDir

///

static

INT CALLBACK BrowseCallbackProc(HWND hwnd,  UINT uMsg, LPARAM lParam, LPARAM lpData) // lParam member of the BROWSEINFO structure used in the call to SHBrowseForFolder

{

switch(uMsg) 

{

case BFFM_INITIALIZED: 

{

// WParam is TRUE since you are passing a path

// It would be FALSE if you were passing a pidl

// TCHAR szDir[MAX_PATH]={0};

// GetCurrentDirectory(sizeof(szDir)/sizeof(TCHAR), szDir);

// SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)"D:\\Qt\\Qt521_mingw48");

}

break;

case BFFM_SELCHANGED:

{

}

break;

}

return 0;

}

static

BOOL GetFilePath(TCHAR FilePath,

 HWND hParentWnd,

 TCHAR InstructionString=NULL, //提醒语句

 UINT ulFlags=BIF_USENEWUI //BIF_USENEWUI拥有新特性,有新建文件夹按钮,可以调整大小,一般加上

 |BIF_RETURNFSANCESTORS //Only return file system ancestors

 |BIF_RETURNONLYFSDIRS //Only return file system directories

 |BIF_BROWSEINCLUDEFILES//The browse dialog will display files as well as folders

 )

{

BROWSEINFO bInfo={0};

bInfohwndOwner=hParentWnd;

bInfopszDisplayName=FilePath;

bInfolpszTitle=InstructionString;

bInfoulFlags= ulFlags;

bInfolpfn=BrowseCallbackProc; // bInfolpfn=NULL;

bInfolParam=0; // BrowseCallbackProc lpData

LPITEMIDLIST pidl= ::SHBrowseForFolder(&bInfo);

if (pidl == NULL)   

return false;

if (::SHGetPathFromIDList(pidl,FilePath) == FALSE)  

return false; 

return true; //default return

}

//调用测试:

TCHAR FilePath[MAX_PATH]="D:\\Qt\\Qt521_mingw48";

if( GetFilePath(FilePath,hWnd,"请选择一个文件") )

{

::MessageBox(::GetFocus(),FilePath,"标题",MB_OK);

}

我是这么认为的!将文档中标题应用标题1、标题2、标题3样式,插入目录窗口,目录选项:勾选“样式”,不勾选“大纲级别”,并为标题1、标题2、标题3分别设置为目录级别1、2、3,点击确定这样生成的目录是依据标题样式生成的而不是依据大纲级别生成

你可以用getPathName等函数(至于这个函数的名称有没有记错我就不敢保证了),你可以在MSDN中查,方法如下:

1。打开MSDN

2。单击“索引”

3。输入CFile 这个类,

然后查看这个类的成员函数,

如果在CFile 中查不到相关的函数,那么可以查找它的父类或者SDK

外:有很多函数其实是可以在MSDN中查到的,主要你大概知道这个函数功能或所属类就行了。

以上就是关于vc怎样获取文件路径全部的内容,包括:vc怎样获取文件路径、如何用C语言获取目录下的文件和目录列表、求一个VC6.0 mfc中树形控件获取磁盘文件目录的例子等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9576813.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存