去除路径中的后缀名和获取路径目录

首先,记录一个网址,感觉很有用,大部分的文件路径相关函数,里面都有源代码。

https://msdn.microsoft.com/en-us/library/windows/desktop/bb773746(v=vs.85).aspx

1、完整路径,去除后缀名   PathRemoveExtensionA

[cpp] view plain copy

  1. #include <iostream>//cout函数所需
  2. #include "atlstr.h"  //PathRemoveExtensionA函数所需
  3. using namespace std;
  4. void main(void)
  5. {
  6. char buffer_1[] = "C:\\TEST\\sample.txt";
  7. char *lpStr1;
  8. lpStr1 = buffer_1;
  9. cout << "The path with extension is          : " << lpStr1 << endl;
  10. PathRemoveExtensionA(lpStr1);
  11. cout << "\nThe path without extension is       : " << lpStr1 << endl;
  12. system("pause");
  13. }
OUTPUT:
==================
The path with extension is          : C:\TEST\sample.txt
The path without extension is       : C:\TEST\sample

2、完整文件路径,获得目录

[cpp] view plain copy

  1. #include <iostream>//cout函数所需
  2. #include "atlstr.h"  //PathRemoveFileSpecA函数所需
  3. using namespace std;
  4. void main(void)
  5. {
  6. char buffer_1[] = "C:\\TEST\\sample.txt";
  7. char *lpStr1;
  8. lpStr1 = buffer_1;
  9. cout << "The path with file spec is          : " << lpStr1 << endl;
  10. PathRemoveFileSpecA(lpStr1);
  11. cout << "\nThe path without file spec is       : " << lpStr1 << endl;
  12. //注意如果获得了目录,需要得到另一个文件路径时
  13. string filename = lpStr1;
  14. filename = filename + "\\samle.txt";
  15. system("pause");
  16. }
OUTPUT:
==================
The path with file spec is          : C:\TEST\sample.txt
The path without file spec is       : C:\TEST

3、获取dll所在路径的两种方式

(1)需要dll入口函数的句柄

[cpp] view plain copy

  1. char szPath[MAX_PATH];
  2. GetModuleFileNameA(dllhandle, szPath, MAX_PATH);//BOOL APIENTRY DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved) //dll入口函数

(2)无需dll入口函数的句柄,dll内任意函数都可

[cpp] view plain copy

  1. EXTERN_C IMAGE_DOS_HEADER __ImageBase;//申明为全局变量
  2. char   DllPath[MAX_PATH] = { 0 };
  3. GetModuleFileNameA((HINSTANCE)&__ImageBase, DllPath, _countof(DllPath))
时间: 2024-10-11 23:23:48

去除路径中的后缀名和获取路径目录的相关文章

Java获取一个路径下指定后缀名的所有文件

方法一: http://blog.csdn.net/zjx102938/article/details/8114114 import java.io.File; import java.util.ArrayList; import java.util.List; public class FileFind { public static void main(String[] args) { String path = "D:\\Test"; List data=new ArrayLis

Spring MVC 以.html为后缀名访问获取数据,报406 Not Acceptable错误。

如题,最近以spring mvc作为后台框架,前端异步获取数据时(.html为后缀名的访问方式),报406 Not Acceptable错误.当初都不知道啥原因,前后台都没报错就是返回不了数据,于是查了下http 406响应码:406 (SC_NOT_ACCEPTABLE)表示请求资源的MIME类型与客户端中Accept头信息中指定的类型不一致.下面请看出错的操作流程及代码: 1.先配置spring mvc 核心servlet (DispatcherServlet) 至web.xml中,其中配置

【JAVA】关于java中 类.class.getResource(&quot;/&quot;).getPath()获取路径有空格的问题

写了一个web工程,在本地测试正确,但是部署到服务器上就出现错误.原因是读取不到配置文件. 后来从打印出来的文件路径中发现是用Java的class.getResource("/").getPath()获取路径的时候,路径中的空格转换成了%20. 在网上查询相关信息,果然将空格转成%20是一个古老的bug,我特意借此记录一下,希望能帮到遇到同样问题的朋友. Bug ID: 4466485 getClass( ).getResource( ).getFile( ) returns file

File类中根据指定后缀名查找所有以该后缀名的文件或者目录

import java.io.File; public class FileSuffixDemo { public static void main(String[] args) { demo(new File(""),"txt"); //传txt后缀名到demo方法中 } public static void demo(File f,String suffix){ //suffix为后缀名 String[] list = f.list(); //用list()方法

关于Android中根据ID名动态获取资源的两个方法

在开发中, 我们习惯了类似下面这种方式去实现引用资源: context.getResources().getDrawable(R.drawable.flower); 但是,当我们提前知道这个资源的id,想动态去引用,而不是在id里面固化应该怎么办呢? 比如某个图片资源的id是R.drawable.test_1, 而且有序的还有test_2,test_3, 我们如何动态的去引用它们?这里有两种方案:直接用反射和用resource的getIdentifier()方法,它们原理都差不多利用反射实现.

C++中各个后缀名文件的作用

1.tlb.tlh和tli文件的关系 tlb文件:com类型库文件.在需要使用对应com类的模块里,“#import ...*.tlb”使用之.tlh.tli文件:他们是vc++编译器解析tlb文件生成的标准c++文件.因为odl和tlb并不是C++标准的东东,有必要把它们翻译成标准的C++类型,使得C++开发者可以使用.相信vb和j++也会把tlb翻译成自己语言兼容的类型描述信息.tlh相当于类型申明(头文件),tli相当于定义实现(CPP文件).可以用写字板打开查看其内容. 备注一个重要的相

windows 如何删除fis3的发布路径[文件名或扩展名太长,目录层次多无法删除的问题]

问题 这几天遇到一个小问题,windows下无法直接删除fis3的发布目录dist,因为在执行命令fis3 release -wL 时出现错误,导致dist内部嵌套的子目录太多(47层): 直接删除会报错:[文件名或扩展名太长无法删除,要么就是目录层次过多] 解决方法 使用的是npm里面一个专门用于删除的模块插件,本人用来处理fis3 遇到的情况.有人用于处理node_modules无法删除的情况 安装 npm install rimraf -g 操作 rimraf <path> [<p

复制指定目录下的指定文件,并修改后缀名 很重要,也很难!!!

package cn.idcast2; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FilenameFilter; im

一句话脚本系列之统计文件夹下各种后缀名的文件个数

欢迎转载!转载时请注明出处:http://blog.csdn.net/nfer_zhuang/article/details/42582425 引言 使用场景: 我所在的QQ群中最近聊的是热火朝天,也就导致着我的QQ缓冲文件夹的大小在疯涨,满500M的时候QQ客户端就会提示用户需要清除一下缓存文件夹了.其中缓冲文件夹中最大的部分就是各种图片文件,包括各种格式的图片.在删除前,我就想按照图片格式进行一下分类后备份到其他文件夹内.这个时候我就需要做一下统计了: 当前文件夹下有几种格式(后缀名)的图片