_splitpath函数得到文件的目录名和路径

Coze智能体开发:开始使用扣子 扣子全新升级!它不仅能帮你办公、做视频、写代码,更具备自主任务执行、探索进化等能力,真正从“陪你聊”走向“帮你干活”。 阅读详情

在WINDOW程序中,可以直接调用MFC封装好的函数来得到文件的路径。
       void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext );
       通过调用这个函数,可以将driver指向文件所在的盘符(如C:),dir指向文件的目录( /sample/crt/ ,这里没有盘符),fname指向文件的文件名(makepath,没有前面的路径),ext指向文件的扩展名(如.c,有带小数点)。
       这样我们就可以得到这个文件的基本信息了。当然通过这些组合就可以得到相关文件的文件名的信息。例如得到文件的全名就可以用strcpy(.....)将*fname和*ext组合起来。


void CDlgDecNormal::OnDecryptTo()
{
    char szDrv[_MAX_DRIVE], szDir[_MAX_DIR], szFile[_MAX_FNAME];
    _splitpath(m_strSource,szDrv,szDir,szFile,NULL);
   
    CString strTargetPath;
    strTargetPath.Format("%s%s%s",szDrv,szDir,szFile);
   
    strTargetPath+="//";

    CString strFiles;

    if (m_lcFiles.GetSelectedCount() <= 0)
    {
        CString str;
        str = GetFileFullName( m_strSource );
        if( m_strAddr.Find("//")!=-1)
        {
            m_strAddr.Replace(str+"//","");
            m_strAddr+="//";
        }
        else
   
            m_strAddr.Replace(str,"");
           
        CString str1;
        str1 =m_strTargetFolder+ m_strAddr;
        strFiles = m_strTargetFolder;

        CString strAdd;
       
        CString strAll = str1 + "*.*";
        _finddata_t fd = { 0 };
        long hFile = _findfirst( strAll, &fd );
        if( hFile != -1 )
        {
            do
            {
                if( strcmp( fd.name, "." ) == 0 || strcmp( fd.name, ".." ) == 0 )
                    continue;
                strAdd.Format( "|%s%s", str1, fd.name );
                strFiles += strAdd;
            } while( _findnext( hFile, &fd ) == 0 );
            _findclose( hFile );
        }
 
    }
    else
    {
        CString strAdd;
        strFiles = m_strTargetFolder;
        POSITION pos = m_lcFiles.GetFirstSelectedItemPosition();
        int nIndex;

        UpdateData();
        CString strTemp;
        int iIndex = m_strAddr.Find( "//", 0 );
        if ( iIndex >= 0 )
        {
            strTemp = m_strAddr.Mid( iIndex + 1 );
        }
        while (pos != NULL)
        {
            nIndex = m_lcFiles.GetNextSelectedItem(pos);
            strAdd.Format("|%s%s//%s",m_strTargetFolder, strTemp, m_lcFiles.GetItemText(nIndex,0));
            strFiles += strAdd;
        }
    }


    CDlgDecPath dlg(strFiles,FALSE,strTargetPath);
    dlg.DoModal();
}

转自 守望天使飞过的博客

【Prometheus】prometheus结合cAdvisor监控docker容器运行状态,并且实现实时告警通知 Docker的监控,可以使用Docker自带的stats命令来获取当前主机上运行中的容器的资源使用情况。 例如:容器的CPU使用率、内存占用、网络IO以及磁盘IO等指标。 阅读详情

相关推荐

splitpath路径分解函数

用c++语言实现splitpath的功能,读取文件路径,并进行路径分解,分解为文件所在磁盘,文件夹,文件名,文件格式等

C++(不需要MFC库,不需要第三方库)对文件进行操作的几种方法

先说两个函数: _splitpath _makepath 需要的头文件是: 函数原型如下 void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext); void _makepath( char[ ]path, char *drive,

tzmyf234的专栏 1480

0power_wind_dfig111.zip_simulink 风机_双馈风机_双馈风机参数_双馈风机模型

双馈风机模型,基于matlab/simulink软件实例,修改参数后得到,能实现顺利运行。

分割文件名 _splitpath() 函数讲解

_splitpath 函数分割路径为:驱动器,目录,文件名(五扩展名),扩展名.  _makepath 完成驱动器,目录,文件名(五扩展名),扩展名合成一个全路径.可以认为是_splitpath函数的逆向过程。 拆分路径 例如,拆分"C:\Program Files\OpenCV\Readme.txt"这个路径 const char* fileName= "C:/Program Fi

gossiplee的博客 4874

_splitpath,_wmakepath,GetModuleFileName,GetModuleHandle,CCommandLineInfo等用法

函数一:_splitpath 分解路径 函数原型: void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext); 参数: path,完成的文件绝对路径;加入一个const证明是一个输入参数,不可以修改。 drive:磁盘的字符串,比如 C dir:中间路径的字符串 fname:文件名称 文...

u012719076的博客 578

splitpath 分解文件路径函数

1概述编辑 声明定义 void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext ); 说明 分解路径,把你的完整路径给分割开来,就是一个对字符串进行分割的函数 参数表 path, Full path(完整路径) drive , Optional dri

luckyboyPB的专栏 1802

Python os.path模块

################################## join:在序列中添加元素 split: 将字符串分解成序列 两者为互逆方法 Python代码      s = "as, asdas \r\nasda" print s.split(); #   result: ['as,', 'asdas', 'asda']  print "".join(s

zzhongcy的专栏 793

分解路径目录名文件名的方法

using System; class Test { static void SplitPath(string path,out string dir,out string name) { int i = path.Length; while (i > 0) { char ch = path[i-1]; if (ch == '\\' || ch == '/' || ch == '

angleoldhen的专栏 1123

牛客网刷题与C++代码学习

自己写的没通过,gpt用树结构写的通过了。学习一下gpt的代码。

u012076669的博客 1062

已知文件名取文件所在目录

已知文件名取文件所在目录http://blog.csdn.net/he_zhidan/archive/2007/07/10/1684767.aspx 已知文件名,如何取文件所在目录?最简单的方法是从后向前找"//".但有时,文件名中没有"//",这时要先转化一下.具体代码如下:CString GetPathName(const CString strPathFileName){ /

StamHe的专栏 910

linux c下,从路径名中分离文件

首先介绍一些查找字符的函数 1、strrchr 头文件:#include <string.h> strrchr() 函数用于查找某字符在字符串中最后一次出现的位置,其原型为: char * strrchr(const char *str, int c); 【参数】str 为要查找的字符串,c 为要查找的字符。 strrchr() 将会找出 str 字符...

weixin_30567225的博客 408

MFC获取程序运行目录

MFC获取程序运行目录

代码人生 4521

华为OD机试:虚拟文件系统的树形结构实现

树形数据结构是计算机科学中的基础概念,通过父子节点关系实现层次化数据组织。其核心原理是利用递归或迭代方式遍历节点,广泛应用于文件系统、路由配置等场景。在工程实践中,使用哈希表嵌套或自定义结构体可高效实现树形存储。本文以华为OD机试题为例,演示如何用树结构构建支持addfilels操作的虚拟文件系统,涉及路径解析、节点类型判断等关键技术点。通过JavaGo双语言实现,展现了树形结构在文件系统开发中的典型应用,为处理层级数据提供了标准范式。

weixin_34414196的博客 697

虚拟文件系统设计与实现:华为OD机试C卷解析

虚拟文件系统(VFS)是操作系统的核心组件,通过抽象底层存储差异为应用提供统一接口。其核心原理是采用树形数据结构组织文件目录,通过路径解析实现导航功能。在工程实践中,VFS需要处理内存管理、错误处理等关键问题,并支持基本的文件操作命令如mkdir、touch等。本文以华为OD机试题目为例,详解如何用C++实现简化版VFS,涵盖数据结构设计、命令处理性能优化等关键技术点。通过这个案例,开发者可以掌握文件系统基础原理面向对象设计方法,为后续学习Linux VFS等实际系统打下基础。

weixin_30729609的博客 462

File.split(pathname)

http://www.kuqin.com/rubycndocument/man/built-in-class/class_object_io_file.html     File.split(pathname)&lt;!-- RDLabel: "File.split" --&gt; 将pathname分为dirnamebasename,并返回一个包含这两部分的数组。它与 [Fi...

java-admin 1761

分析路径参数函数_splitpath

以前也写过分析程序运行路径的博文http://blog.csdn.net/qiuyeting/article/details/7305077,但今天偶然发现有更好的函数可以帮助我们分析路径参数。这个函数就是_splitpath函数原型: void _splitpath( const char *path, char *drive, char *dir, char

vyCode 2604

windows 上的 _splitpath 函数在 linux 平台下的简单实现

在做移植时, 发现了 _splitpath 在 linux 下是没有的,于是决定自己写下,也不难。 首先百科到如下内容: 声明定义 void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext ); 说明 分解路径,把你的完整路径给分割开来,就是一个对字符串进行分割的

阿然的专栏 6455

函数_splitpath用法

1:splitpath:把一个全路径分解成5个部分,卷名、路径名、文件名以及后缀2:取得当前正在运行的进程    使用CreateToolhelp32Snapshot,Process32First,SHGetFileInfo三个函数,以及PROCESSENTRY32结构体

jackyxwr的专栏 1236

VC++ GetModuleFileName、_splitpath_makepath用法

GetModuleFileName The GetModuleFileName function retrieves the full path and filename for the executable file containing the specified module.返回当前进程已加载可执行或DLL文件的完整路径名(以'\0'终止),是windows的API函数,使用的时候需要包

Gordennizaicunzai的博客 1291

qt split() 使用

定义用法 split() 方法用于把一个字符串分割成字符串数组。 示例 String a[]=str.split(",");//把str这个字符串用逗号“,”进行分割,分割后的字符串数组放在a[]中,比如 111,222,333

m0_37290785的博客 1万+
上一篇: 如何切分窗口
下一篇: DirectShow9在VS2005或vc6.0下编译出现问题的解决方法
dkbrain
博客等级 码龄18年 7粉丝 4原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值