【MoreWindows工作笔记6】PathCommonPrefix 路径公共前缀

原创 2013年12月16日 13:08:16

工作后比较忙,没大块的时间来酝酿博客的写作,所以随时记点笔记,一来方便自己查阅,二来也督促自己学习和总结。如果能对大家有所帮助,就更加开心了大笑


提取出路径的公共前缀是个比较实用的功能,函数原型如下:

int PathCommonPrefix(      
    LPCTSTR pszFile1,
    LPCTSTR pszFile2,
    LPTSTR pszPath
);

各个参数解释如下(这英语相当简单~):

pszFile1
[in] A pointer to a null-terminated string of maximum length MAX_PATH that contains the first path name.
pszFile2
[in] A pointer to a null-terminated string of maximum length MAX_PATH that contains the second path name.
pszPath
[out] A pointer to a buffer that receives the common prefix. This buffer is assumed to be at least MAX_PATH characters in size. If there is no common prefix, it will be set to NULL.

下面给出示范:

// 【MoreWindows工作笔记6】PathCommonPrefix 路径的公共前缀
//  http://blog.csdn.net/morewindows/article/details/17078619
#include <windows.h>
#include <Shlwapi.h>
#include <string>
#include <iostream>
using namespace std;
#pragma comment(lib, "shlwapi.lib")
int main()
{
  printf("   【MoreWindows工作笔记6】PathCommonPrefix 路径的公共前缀\n");    
  printf(" - http://blog.csdn.net/morewindows/article/details/17078619 -\n");    
  printf(" -- By MoreWindows( http://blog.csdn.net/MoreWindows ) --\n\n");

  // 路径公共前缀
  string src_path = "C:\\test1\\test"; //"\\home\\test1\\test";
  string des_path = "C:\\test1\\test2"; //"\\home\\test1\\test2";
  char prefix_path[MAX_PATH];
  PathCommonPrefix(src_path.c_str(), des_path.c_str(), prefix_path);

  cout<<"源路径:   "<<src_path<<endl;
  cout<<"目标路径: "<<des_path<<endl;
  cout<<"-----------------------------------"<<endl;
  cout<<"路径共有的前缀为: "<<prefix_path<<endl;
  if (prefix_path == src_path)
    cout<<" 目标路径包含源路径"<<endl;
  else
    cout<<" 目标路径不包含源路径"<<endl;
  cout<<"-----------------------------------"<<endl;
  return 0;
}
运行结果如图所示:


本篇《【MoreWindows工作笔记6】PathCommonPrefix 路径的公共前缀》介绍了使用函数提取路径的公共前缀,并使用公共前缀来判断路径的包含关系,下一篇《【MoreWindows工作笔记7】PathIsPrefix 判断路径的包含关系》将介绍一个更简单的API函数来判断路径的包含关系——PathIsPrefix。欢迎继续浏览~


地址:http://blog.csdn.net/morewindows/article/details/17078619  转载请标明出处,谢谢。

欢迎关注微博:http://weibo.com/MoreWindows  



版权声明:本文为博主原创文章,未经博主允许不得转载。

【MoreWindows工作笔记8】PathFindSuffixArrayW 路径是否有给定的后缀

根据文件的后缀名来判断文件类型是个相当常用的方法,要先写一个后缀名数组,然后遍历这个数组来查找吗?不用,Windows系统已经提供了一个相当好用的API帮助大家处理这个问题了——PathFindSuf...
  • MoreWindows
  • MoreWindows
  • 2013年12月16日 13:08
  • 14807

【MoreWindows工作笔记7】PathIsPrefix 判断路径的包含关系

判断路径的包含关系是Windows系统复制移动文件夹的前置条件,比如将C:\test复制到C:\test\test1下就是不可行的。前一篇《【MoreWindows工作笔记6】PathCommonPr...
  • MoreWindows
  • MoreWindows
  • 2013年12月16日 13:08
  • 13880

【MoreWindows工作笔记12】WM_DRAWCLIPBOARD 监视剪切板

【MoreWindows工作笔记12】WM_DRAWCLIPBOARD 监视剪切板 很多程序会监视剪贴板,比如迅雷,这样当你复制一个迅雷下载链接时,迅雷就可以自动启动并创建一个新的下载任务。下面我们就...
  • MoreWindows
  • MoreWindows
  • 2013年12月31日 16:00
  • 20643

【MoreWindows工作笔记2】 查看当前系统使用的字符集 GetSystemDefaultLocaleName

查看当前系统使用的字符集可以使用GetSystemDefaultLCID() + GetSystemDefaultLocaleName()...
  • MoreWindows
  • MoreWindows
  • 2013年11月18日 13:51
  • 15477

【MoreWindows工作笔记10】OleGetClipboard 访问剪切板上的文件信息

【MoreWindows工作笔记10】OleGetClipboard 访问剪切板上的文件信息 当我们复制文件时,会将文件的信息存储在剪贴板中,这个文件信息并不是文件路径的字符串。而是HDROP类型,本...
  • MoreWindows
  • MoreWindows
  • 2013年12月31日 16:00
  • 16226

【MoreWindows工作笔记11】EnumClipboardFormats 剪切板内容的数据格式

【MoreWindows工作笔记11】EnumClipboardFormats 剪切板内容的数据格式 本文将输出剪贴板上的数据地址,数据大小,对文本类型的数据如何直接输出。...
  • MoreWindows
  • MoreWindows
  • 2013年12月31日 16:00
  • 18734

【MoreWindows工作笔记9】OleGetClipboard 访问剪切板的文本内容

【MoreWindows工作笔记9】OleGetClipboard 访问剪切板的文本内容 本文将示范如果通过OLE方式从剪贴板上获取数据,如果该数据是文本内容,则打印该文本内容。...
  • MoreWindows
  • MoreWindows
  • 2013年12月31日 15:59
  • 26725

【MoreWindows工作笔记1】 C/C++ 输出宽字符 printf + %ls or wcout

工作后比较忙,没大块的时间来酝酿写博客,所以随时记点笔记,一来方便自己查阅,二来也督促自己学习和总结。如果能对大家有所帮助,就更加开心了。  在C/C++中输出宽字符可以使用printf + %ls ...
  • MoreWindows
  • MoreWindows
  • 2013年11月18日 13:51
  • 20902

能在Windows资源管理器中打开当前工作路径的VC6插件

  • 2017年12月11日 17:20
  • 88KB
  • 下载

字典树求公共前缀字符串数目

  • 2014年03月13日 20:08
  • 204KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【MoreWindows工作笔记6】PathCommonPrefix 路径公共前缀
举报原因:
原因补充:

(最多只允许输入30个字)