怎样得到一个文件的路径~~~,请教~~~

时间:2022-10-18 00:32:34
//在打开文件对话框中选择文件
CFileDialog FileDlg (TRUE,NULL,NULL,OFN_HIDEREADONLY,"ALL Files(*.*)|*.*||");
//如果未选择打开文件,则返回
if( FileDlg.DoModal()==IDCANCEL )
   return;
m_fullname=FileDlg.GetPathName();
CFileStatus status;
CFile::GetStatus(m_fullname,status);
m_fullname.Format("文件名及其路径:%s",status.m_szFullName);

我想通过打开一个文件,然后通过一个静态文本控件显示这个文件的完整路径,其中m_fullname是为这个控件定义的一个Cstring类的变量,编译能够通过,运行的时候也可以打开文件对话框选择一个文件,可是面板上只能显示“文件名及其路径:”,后面的就没有了,这是什么原因呢??是不是我的函数调用有问题,还是我的方法有问题,还请各位大虾多多指教~~

10 个解决方案

#1


m_fullname.Format("文件名及其路径:%s",FileDlg.GetPathName());

#2


用SetDlgItemText(IDC_STATIC,m_fullname);就行了。另外注意一下静态文本框的长度要足够长,以容纳下这些字符,这是常见的疏忽。

#3


刚刚看到了楼上的大虾对文件路径问题的回复,能够解决我的问题,不过不能在上面同时显示“文件名及其路径:”,例如:“文件名及其路径:c:\\My Documents\\aaa.htm”,有什么办法可以解决吗?? 期待高手的指教~~

#4


先按横秋朋友的方法得到完整的字符串m_fullname,再用SetDlgItemText函数显示出来。即:

m_fullname.Format("文件名及其路径:%s",FileDlg.GetPathName());
SetDlgItemText(IDC_STATIC,m_fullname);

#5


支持!
m_fullname.Format("文件名及其路径:%s",FileDlg.GetPathName());
SetDlgItemText(IDC_STATIC,m_fullname);
这两句就够了

#6


啊,刚才忘问了一句,每次按钮打开的文件路径,似乎都是上次点选文件的位置,能不能让他每次点选都自动的在同一个默认的位置呢?

#7


GetFileName

#8


还有问题,那个。。。。我用m_fullname=FileDlg.GetPathName();就可以,为什么用m_fullname=FileDlg.GetFolderPath()就不行呢?疑问中。。。。。。
还有就是,我想选文件夹的话应该怎么处理?
关注

#9


选文件夹用SHBrowseForFolder()这个函数

#10


没想到这么一个小小的问题得到了这么多高手的支持和指教,小弟我在这里谢谢先~~~~结帖了~~~

#1


m_fullname.Format("文件名及其路径:%s",FileDlg.GetPathName());

#2


用SetDlgItemText(IDC_STATIC,m_fullname);就行了。另外注意一下静态文本框的长度要足够长,以容纳下这些字符,这是常见的疏忽。

#3


刚刚看到了楼上的大虾对文件路径问题的回复,能够解决我的问题,不过不能在上面同时显示“文件名及其路径:”,例如:“文件名及其路径:c:\\My Documents\\aaa.htm”,有什么办法可以解决吗?? 期待高手的指教~~

#4


先按横秋朋友的方法得到完整的字符串m_fullname,再用SetDlgItemText函数显示出来。即:

m_fullname.Format("文件名及其路径:%s",FileDlg.GetPathName());
SetDlgItemText(IDC_STATIC,m_fullname);

#5


支持!
m_fullname.Format("文件名及其路径:%s",FileDlg.GetPathName());
SetDlgItemText(IDC_STATIC,m_fullname);
这两句就够了

#6


啊,刚才忘问了一句,每次按钮打开的文件路径,似乎都是上次点选文件的位置,能不能让他每次点选都自动的在同一个默认的位置呢?

#7


GetFileName

#8


还有问题,那个。。。。我用m_fullname=FileDlg.GetPathName();就可以,为什么用m_fullname=FileDlg.GetFolderPath()就不行呢?疑问中。。。。。。
还有就是,我想选文件夹的话应该怎么处理?
关注

#9


选文件夹用SHBrowseForFolder()这个函数

#10


没想到这么一个小小的问题得到了这么多高手的支持和指教,小弟我在这里谢谢先~~~~结帖了~~~