21 个解决方案
#1
应该有查找某个目录下文件的函数吧?文件名放在字符串中,然后查找"."的位置,获得该位置后字符的名字不就可以了?
#2
第一,我只知道文件的显示名字,也就是说你看到什么,你就得到什么,看不到扩展名,就得不到扩展名。第二,我要是知道了文件的全名,就不在这里问了。第三,现在只能得到文件的显示名字,也就是'.'以前的字串。有没有什么函数可以得到文件的扩展名,我不能得到路径。
#3
工具-〉文件夹选项->使用windows传统风格的文件夹
#4
用打开文件对话框的,这个函数
CFileDialog::GetFileExt()
CFileDialog::GetFileExt()
#5
如果你用LB_DIR应该是有扩展名的
#6
大家帮忙啊
#7
CString sExt;
sFileName=文件名
int id=sFileName.ReverseFind('.');
if(id!=-1)
sExt=sFileName.Mid(id+1);
sFileName=文件名
int id=sFileName.ReverseFind('.');
if(id!=-1)
sExt=sFileName.Mid(id+1);
#8
HRESULT GetFileName(
WCHAR wszFileName[],
DWORD dwSize,
DWORD* pdwLength
);
WCHAR wszFileName[],
DWORD dwSize,
DWORD* pdwLength
);
#9
用zswzwy的, 或者如下方法也可CFile::GetFileName() CFile::GetFileTitle()
各得到一字符串, 前者减后者(前面是文件名, 含扩展名, 后者不含扩展名)
各得到一字符串, 前者减后者(前面是文件名, 含扩展名, 后者不含扩展名)
#10
看来我说的还不够清楚啊,用zswzwy的方法为例。
CString sExt;
sFileName=文件名
int id=sFileName.ReverseFind('.');
if(id!=-1)
sExt=sFileName.Mid(id+1);
//sFileName=文件名,这一句中,用我的方法的话’文件名‘里包含的只是显示的名字,比如文件(实际)readme.txt,我只能得到显示名字readme。这样的话是不能通过查找'.'来获得文件的扩展名的。我要的是怎么得到扩展名,而不是怎么解析出扩展名。不过还是要谢谢你们的热心帮助!!!
CString sExt;
sFileName=文件名
int id=sFileName.ReverseFind('.');
if(id!=-1)
sExt=sFileName.Mid(id+1);
//sFileName=文件名,这一句中,用我的方法的话’文件名‘里包含的只是显示的名字,比如文件(实际)readme.txt,我只能得到显示名字readme。这样的话是不能通过查找'.'来获得文件的扩展名的。我要的是怎么得到扩展名,而不是怎么解析出扩展名。不过还是要谢谢你们的热心帮助!!!
#11
你可以得到完整的文件名呀,这个也不难吧。
#12
如果不用完整文件名,根本不可能获得文件的扩展名!
#13
我需要的功能是:在2k下,在资源管理器中点击一个图标(文件)时,得到他的完整的文件名,好象也不太容易,因为不知道文件的路径。用ListView_GetItemText函数只能得到文件的显示名字,如果系统的文件夹选项设置为不显示文件的扩展名,用上面的函数就得不到扩展名,我不知道还有什么其他的好方法了。骑士兄有什么好方法可以大家研究一下
#14
TCHAR m_dPath[_MAX_PATH];
TCHAR m_dname[_MAX_PATH];
TCHAR m_dext[_MAX_PATH];
sprintf(m_dPath,(LPCSTR)m_fPath);
::_splitpath(m_dPath,NULL,NULL,m_dname,m_dext);
m_dext里面就是了。
TCHAR m_dname[_MAX_PATH];
TCHAR m_dext[_MAX_PATH];
sprintf(m_dPath,(LPCSTR)m_fPath);
::_splitpath(m_dPath,NULL,NULL,m_dname,m_dext);
m_dext里面就是了。
#15
我做过一个资源管理器,我是这样做的:
当点开树的时候开始查找它对应的目录,及它下面的目录和文件。
不知道你可不可以也查找一下呢?
当点开树的时候开始查找它对应的目录,及它下面的目录和文件。
不知道你可不可以也查找一下呢?
#16
我试试howtotell(touch)兄的程序。
#17
howtotell(touch)兄,我怎么才能知道当前的路径呢,我用的是全局的鼠标钩子,当在资源管理器中点击的时候,不知道怎么确定当前的路径,好象挺困难的。因为我在别人的进程里(如资源管理器)是不可能知道当前的路径的,在2k下,地址栏里显示的也不是当前的路径。
#18
GetModuleFile
#19
怎么得到资源管理器当前浏览的文件夹的路径呢,GetModuleFile好象不对吧
#20
CFileFind finder;
CString FileName; //文件名
CString FileNameEx; //文件名+扩展名
BOOL conSerach=finder.FindFile("FileName.*");
while(conSerach)
{
conSerach=finder.FindNextFile();
FileNameEx=finder.GetFileName();
}
CString FileName; //文件名
CString FileNameEx; //文件名+扩展名
BOOL conSerach=finder.FindFile("FileName.*");
while(conSerach)
{
conSerach=finder.FindNextFile();
FileNameEx=finder.GetFileName();
}
#21
我已经解决了
#1
应该有查找某个目录下文件的函数吧?文件名放在字符串中,然后查找"."的位置,获得该位置后字符的名字不就可以了?
#2
第一,我只知道文件的显示名字,也就是说你看到什么,你就得到什么,看不到扩展名,就得不到扩展名。第二,我要是知道了文件的全名,就不在这里问了。第三,现在只能得到文件的显示名字,也就是'.'以前的字串。有没有什么函数可以得到文件的扩展名,我不能得到路径。
#3
工具-〉文件夹选项->使用windows传统风格的文件夹
#4
用打开文件对话框的,这个函数
CFileDialog::GetFileExt()
CFileDialog::GetFileExt()
#5
如果你用LB_DIR应该是有扩展名的
#6
大家帮忙啊
#7
CString sExt;
sFileName=文件名
int id=sFileName.ReverseFind('.');
if(id!=-1)
sExt=sFileName.Mid(id+1);
sFileName=文件名
int id=sFileName.ReverseFind('.');
if(id!=-1)
sExt=sFileName.Mid(id+1);
#8
HRESULT GetFileName(
WCHAR wszFileName[],
DWORD dwSize,
DWORD* pdwLength
);
WCHAR wszFileName[],
DWORD dwSize,
DWORD* pdwLength
);
#9
用zswzwy的, 或者如下方法也可CFile::GetFileName() CFile::GetFileTitle()
各得到一字符串, 前者减后者(前面是文件名, 含扩展名, 后者不含扩展名)
各得到一字符串, 前者减后者(前面是文件名, 含扩展名, 后者不含扩展名)
#10
看来我说的还不够清楚啊,用zswzwy的方法为例。
CString sExt;
sFileName=文件名
int id=sFileName.ReverseFind('.');
if(id!=-1)
sExt=sFileName.Mid(id+1);
//sFileName=文件名,这一句中,用我的方法的话’文件名‘里包含的只是显示的名字,比如文件(实际)readme.txt,我只能得到显示名字readme。这样的话是不能通过查找'.'来获得文件的扩展名的。我要的是怎么得到扩展名,而不是怎么解析出扩展名。不过还是要谢谢你们的热心帮助!!!
CString sExt;
sFileName=文件名
int id=sFileName.ReverseFind('.');
if(id!=-1)
sExt=sFileName.Mid(id+1);
//sFileName=文件名,这一句中,用我的方法的话’文件名‘里包含的只是显示的名字,比如文件(实际)readme.txt,我只能得到显示名字readme。这样的话是不能通过查找'.'来获得文件的扩展名的。我要的是怎么得到扩展名,而不是怎么解析出扩展名。不过还是要谢谢你们的热心帮助!!!
#11
你可以得到完整的文件名呀,这个也不难吧。
#12
如果不用完整文件名,根本不可能获得文件的扩展名!
#13
我需要的功能是:在2k下,在资源管理器中点击一个图标(文件)时,得到他的完整的文件名,好象也不太容易,因为不知道文件的路径。用ListView_GetItemText函数只能得到文件的显示名字,如果系统的文件夹选项设置为不显示文件的扩展名,用上面的函数就得不到扩展名,我不知道还有什么其他的好方法了。骑士兄有什么好方法可以大家研究一下
#14
TCHAR m_dPath[_MAX_PATH];
TCHAR m_dname[_MAX_PATH];
TCHAR m_dext[_MAX_PATH];
sprintf(m_dPath,(LPCSTR)m_fPath);
::_splitpath(m_dPath,NULL,NULL,m_dname,m_dext);
m_dext里面就是了。
TCHAR m_dname[_MAX_PATH];
TCHAR m_dext[_MAX_PATH];
sprintf(m_dPath,(LPCSTR)m_fPath);
::_splitpath(m_dPath,NULL,NULL,m_dname,m_dext);
m_dext里面就是了。
#15
我做过一个资源管理器,我是这样做的:
当点开树的时候开始查找它对应的目录,及它下面的目录和文件。
不知道你可不可以也查找一下呢?
当点开树的时候开始查找它对应的目录,及它下面的目录和文件。
不知道你可不可以也查找一下呢?
#16
我试试howtotell(touch)兄的程序。
#17
howtotell(touch)兄,我怎么才能知道当前的路径呢,我用的是全局的鼠标钩子,当在资源管理器中点击的时候,不知道怎么确定当前的路径,好象挺困难的。因为我在别人的进程里(如资源管理器)是不可能知道当前的路径的,在2k下,地址栏里显示的也不是当前的路径。
#18
GetModuleFile
#19
怎么得到资源管理器当前浏览的文件夹的路径呢,GetModuleFile好象不对吧
#20
CFileFind finder;
CString FileName; //文件名
CString FileNameEx; //文件名+扩展名
BOOL conSerach=finder.FindFile("FileName.*");
while(conSerach)
{
conSerach=finder.FindNextFile();
FileNameEx=finder.GetFileName();
}
CString FileName; //文件名
CString FileNameEx; //文件名+扩展名
BOOL conSerach=finder.FindFile("FileName.*");
while(conSerach)
{
conSerach=finder.FindNextFile();
FileNameEx=finder.GetFileName();
}
#21
我已经解决了