1. 程式人生 > >VC 中如何從字串中分離檔名與路徑+路徑操作

VC 中如何從字串中分離檔名與路徑+路徑操作

#include "stdafx.h"
#include "PathStringManager.h"

CPathStringOper::CPathStringOper(void)
{
}

CPathStringOper::~CPathStringOper(void)
{
}

CPathStringOper::GetFolderPathFromFullPath(LPCTSTR lpszFullPath)
{
 // 獲取檔案路徑:
 // 注意不是“/”以結尾,因為使用過程中加上一個“/”容易,減去一個不容易
 CString m_strOriFileName(lpszFullPath);

 CString strPath;
    int n=m_strOriFileName.ReverseFind('//')+1;
    strPath=m_strOriFileName.Left(n);
 return strPath;
}

CPathStringOper::GetFileFullNameFromFullPath(LPCTSTR lpszFullPath)
{
 // 獲取檔名:
 CString m_strOriFileName(lpszFullPath);
  
    CString strPath;
    int n=m_strOriFileName.GetLength()-m_strOriFileName.ReverseFind('//')-1;
    strPath=m_strOriFileName.Right(n);

 return strPath;
}

CPathStringOper::GetFileExtNameFromFullPath(LPCTSTR lpszFullPath)
{
    // 同理,獲取檔案字尾名則為:
    CString m_strOriFileName(lpszFullPath);
 
 CString strFileType;
    int n=m_strOriFileName.GetLength()-m_strOriFileName.ReverseFind('.')-1;
    strFileType=m_strOriFileName.Right(n);

 return strFileType;
}

>>> 後來發現Windows 本身就能,就提供API實現,

不過  GetFolderPathFromFullPath(LPCTSTR lpszFullPath),GetFileExtNameFromFullPath(LPCTSTR lpszFullPath) API沒有

Common Dialog Box Functions

The following functions are used with common dialog boxes.

The following functions are used with common dialog boxes.

ChooseColor 
ChooseFont 
CommDlgExtendedError 
FindText
GetFileTitle 
GetOpenFileName 
GetSaveFileName 
PageSetupDlg 
PrintDlg 
PrintDlgEx 
ReplaceText 

short GetFileTitle(
  LPCTSTR lpszFile,  // pointer to full path and filename for file
  LPTSTR lpszTitle,  // pointer to buffer that receives filename
  WORD cbBuf         // length of buffer
);


BOOL GetOpenFileName(
  LPOPENFILENAME lpofn   // address of structure with initialization
                         // data
);

相關推薦

VC 如何字串分離檔名路徑+路徑操作

#include "stdafx.h"#include "PathStringManager.h" CPathStringOper::CPathStringOper(void){} CPathStringOper::~CPathStringOper(void){} CPath

字串分離檔案路徑檔名及拓展

實現效果: 關鍵知識:(  用到了string物件的Substring()  LastIndexOf()   )     實現程式碼: 1 private void button1_Click(objec

利用strrchr函式字串分離字元

比如在用FIFO寫單伺服器多使用者的程式中,要分離出使用者請求行中的路徑,可以用strrchr函式。 #include <string.h> 函式原型:extern char * strrchr (const char *s, int c) 引數說明:s為一個字串的指標,c為

字串取出使用者名稱密碼存入HashMap

package com.hwadee.test; import java.util.HashMap; import java.util.Iterator; import java.util.Set; import java.util.regex.Matcher; import java

java 字串 以單個或多個空格進行分隔 提取字串

    String str = "test test1 test2 test3"; String [] arr = str.split("\\s+"); for(String ss : arr){

Excel怎樣字串提取位置和長度不固定的數字

最近上課的時候,常常有學員諮詢怎樣從Excel字元中提取位置和長度都不固定的數字,今天我們分兩種情況來聊一聊對應的解決方案。 情況1:數字前後有特定的分隔符 如果數字前後有特定的分隔符,比如()、##等分隔符,那麼我們可以通過查詢這些分隔符的位置,來定位到數字的位置。 比如下圖所示的這個

python實現字串找出特定字元的位置以及個數的方法

python實現從字串中找出特定字元的位置以及個數的方法 本文例項主要實現給出任意字串,獲取字串中某字元的位置以及出現的總次數。 實現該功能程式碼的時候可以使用函式enumerate來將字串分離成位置和字元,然後進行比較即可。 具體實現程式碼如下: #!/b

如何字串提取非零數字並求和

執行到console.readline時出現錯誤。求高手幫忙解答。如下圖所示datagridview如何根據訂單表自動更新非手工錄入訂單明細表的插入更改刪除執行到console.readline時出現錯誤。求高手幫忙解答。如下圖所示datagridview如何根據訂單表自動更

hive json 字串解析之 get_json_object json_tuple

    在技術對app進行埋點時,會講多個欄位存放在一個數組中,因此模型呼叫資料時,要對埋點資料進行解析,以作進一步的清洗。本文將介紹解析json字串的兩個函式:get_json_object和json_tuple。 表結構如下: 一、get_json_o

java 字串提取省、市、區、鎮、鄉等區域名稱(包含少數民族地區)

近期寫的一個專案,需要從IOS和Android傳來的一個字串提取省、市、區等區域名稱,於是就整理了一個工具類,程式碼如下: import java.util.ArrayList; import java.util.LinkedHashMap; import java.u

Redis字串特性詳解原始碼解讀

前言 Redis 中有五種資料型別,分別是 Str (字串)、 Hash (雜湊)、 List (列表)、 Set (集合)、 Zset (有序集合)。 這五種資料型別的實際運用與底層實現和其他語言中的資料結構的實現有所不同,底層實現是由Redis基於C語言的基

hivejson字串解析之get_json_objectjson_tuple

在技術對app進行埋點時,會講多個欄位存放在一個數組中,因此模型呼叫資料時,要對埋點資料進行解析,以作進一步的清洗。本文將介紹解析json字串的兩個函式:get_json_object和json_tuple。 表結構如下: 一、get_json_object 函式的作用

python正則表示式字串提取數字

python從字串中提取數字 使用正則表示式,用法如下: ## 總結 ## ^ 匹配字串的開始。 ## $ 匹配字串的結尾。 ## \b 匹配一個單詞的邊界。 ## \d 匹配任意數字。 ## \D

VC/MFC WebBrower 獲取 HTML 和文字

本文部分轉載於 http://blog.chinaunix.net/uid-2516614-id-2496197.html 用於參考 /////////////////////////////////////////////////////////////// 外部視窗介

C語言指向字串常量的指標指向字串陣列的指標

char str[] = "1234567asdf";char*pstr = str;上面是定義了一個字串陣列及一個指向這個字串陣列的指標,可以通過這個指標對陣列中的內容進行操作;例如:*(pstr +

Python程式設計:dateutil模組parser字串解析出時間物件

以下是python3的程式碼 from dateutil import parser time_str = "2018 9 03" dtime = parser.parse(time_str) p

使用正則表示式字串查詢子字串

直接上程式碼: String string = "asdasd#_%12.gifdadsa#_%2324.gif"; String regx = "#_%\\d+.gif"; Patter

C語言sscanf()函式:字串讀取指定格式的資料&&C語言strtok()函式:字串分割

標頭檔案:#include <stdio.h>sscanf()函式用於從字串中讀取指定格式的資料,其原型如下:    int sscanf (char *str, char * format [, argument, ...]);【引數】引數str為要讀取資料的

用bat字串擷取字元

  以字串a=123456789為例,分別擷取1,2,9,123,234,789欄位。 1)擷取欄位“1”: @echo off set a=123456789 set var=%a:~0,1% echo %var% pause 效果如下: 方法二:(只改變一

python 字串提取資料

解題思路: 2.1 既然是提取數字,那麼數字的形式一般是:整數,小數,整數加小數; 2.2 所以一般是形如:----.-----; 2.3 根據上述正則表示式的含義,可寫出如下的表示式:"\d+\.?\d*"; 2.4 \d+匹配1次或者多次數字,注意這裡不要寫成*,因為即便是小數,小數點之前也得有一個數字