C++ åèæå
- C++11
- C++14
- C++17
- C++20
- C++ ç¼è¯å¨æ¯ææ åµè¡¨
- ç¬ç«ä¸å®¿ä¸»å®ç°
- C++ è¯è¨
- C++ å ³é®è¯
- é¢å¤çå¨
- C++ æ ååºå¤´æä»¶
- å ·åè¦æ±
- åè½ç¹æ§æµè¯ (C++20)
- å·¥å ·åº
- ç±»åæ¯æï¼åºæ¬ç±»åãRTTIãç±»åç¹æ§ï¼
- æ¦å¿µåº (C++20)
- é误å¤ç
- 卿å å管ç
- æ¥æåæ¶é´å·¥å ·
- å符串åº
- 容å¨åº
- è¿ä»£å¨åº
- èå´åº (C++20)
- ç®æ³åº
- æ°å¼åº
- è¾å ¥/è¾åºåº
- æä»¶ç³»ç»åº
- std::filesystem::path
- std::filesystem::file_time_type
- std::filesystem::path::empty
- std::filesystem::u8path
- std::filesystem::filesystem_error
- std::filesystem::directory_entry
- std::filesystem::directory_iterator
- std::filesystem::recursive_directory_iterator
- std::filesystem::file_status
- std::filesystem::space_info
- std::filesystem::file_type
- std::filesystem::perms
- std::filesystem::perm_options
- std::filesystem::copy_options
- std::filesystem::directory_options
- std::filesystem::absolute
- std::filesystem::canonical, std::filesystem::weakly_canonical
- std::filesystem::relative, std::filesystem::proximate
- std::filesystem::copy
- std::filesystem::copy_file
- std::filesystem::copy_symlink
- std::filesystem::create_directory, std::filesystem::create_directories
- std::filesystem::create_hard_link
- std::filesystem::create_symlink, std::filesystem::create_directory_symlink
- std::filesystem::current_path
- std::filesystem::exists
- std::filesystem::equivalent
- std::filesystem::file_size
- std::filesystem::hard_link_count
- std::filesystem::last_write_time
- std::filesystem::permissions
- std::filesystem::read_symlink
- std::filesystem::remove, std::filesystem::remove_all
- std::filesystem::rename
- std::filesystem::resize_file
- std::filesystem::space
- std::filesystem::status, std::filesystem::symlink_status
- std::filesystem::temp_directory_path
- std::filesystem::is_block_file
- std::filesystem::is_character_file
- std::filesystem::is_directory
- std::filesystem::is_empty
- std::filesystem::status_known
- std::filesystem::is_fifo
- std::filesystem::is_other
- std::filesystem::is_regular_file
- std::filesystem::is_socket
- std::filesystem::is_symlink
- 注é
- æ¬å°ååº
- æ£å表达å¼åº
- ååæä½åº
- çº¿ç¨æ¯æåº
- å®éªæ§ C++ ç¹æ§
- æç¨çèµæº
- ç´¢å¼
- std 符å·ç´¢å¼
- åç¨æ¯æ (C++20)
- C++ å ³é®è¯
ä½ç½®ï¼é¦é¡µ > C++ åèæå >æä»¶ç³»ç»åº > std::filesystem::path
std::filesystem::path
ç±»å path ç对象表示æä»¶ç³»ç»ä¸çè·¯å¾ãåªæè·¯å¾çè¯æ³å¤è§å¾å°å¤çï¼è·¯å¾åå¯è½è¡¨ç¤ºä¸åå¨çè·¯å¾ï¼æçè³ä¸å
许åå¨äºå½åæä»¶ç³»ç»ææä½ç³»ç»çè·¯å¾ã
è·¯å¾åæ¥æä¸åè¯æ³ï¼
- æ ¹å(å¯é) ï¼æ è¯å ·æå¤æ ¹çæä»¶ç³»ç»ï¼å¦ "C:" æ "//myserver" ï¼çæ ¹ãææ§ä¹çæ åµä¸ï¼å°ç»æåæ³ æ ¹å çæé¿åºåå½å æ ¹å ãæ ååºå¯ä»¥å¨ OS API æäºè§£ç æ ¹å å¤ï¼å®ä¹é¢å¤ç æ ¹å ã
- æ ¹ç®å½(å¯é) ï¼ç®å½åé符ï¼è¥åå¨ï¼åæ è®°æ¤è·¯å¾ä¸ºç»å¯¹ãè¥ç¼ºå¤±ï¼ä¸å¼äºæ ¹åçé¦å ç´ æ¯æä»¶åï¼ï¼åè·¯å¾ä¸ºç¸å¯¹ä¸è¦æ±å¦ä¸è·¯å¾ä½ä¸ºè§£å³æ¤æä»¶åçèµ·å§ä½ç½®ã
- é¶æå¤ä¸ªä¸åè ï¼
- æä»¶å ï¼ä¸ç±ç®å½åé符æå好ç®å½åéç¬¦ç»æçå符åºåï¼æä½ç³»ç»ææä»¶ç³»ç»å¯è½å ä¸éå éå¶ï¼ãæ¤åç§°å¯è½æ è¯ä¸ä¸ªæä»¶ãç¡¬é¾æ¥æç®å½ã辨å«äºç§ç¹æ®ç æä»¶å ï¼
- ç¹ ï¼ç±å个ç¹å符 . ææçæä»¶åæ¯æä»£å½åç®å½çç®å½å
- ç¹ç¹ ï¼ç±äºä¸ªç¹å符 .. ææçæä»¶åæ¯æä»£äº²ç®å½çç®å½åã
- ç®å½åé符 ï¼æ£ææ å符 / æä½ä¸º
path::preferred_separatoræä¾çå¦ä¸ç§å符ãè¥é夿¤å符ï¼åå®è¢«å¤çæå个ç®å½åéç¬¦ï¼ /usr///////lib ä¸ /usr/lib ç¸å
è·¯å¾è½ä»¥ä¸åç®æ³æ£å¸¸åï¼
- è¥è·¯å¾ä¸ºç©ºï¼å忢ï¼ç©ºè·¯å¾çæ£å¸¸å½¢å¼æ¯ç©ºè·¯å¾ï¼
- æ¿æ¢æ¯ä¸ª ç®å½åé符 ï¼å¯ä»¥ç±å¤éææ ç»æï¼ä¸ºå个
path::preferred_separatorã - æ¿æ¢ æ ¹å ä¸çæ¯ä¸ªææ å符为
path::preferred_separatorã - ç§»é¤æ¯ä¸ª ç¹ åç«å³åéç ç®å½åé符 ã
- ç§»é¤æ¯ä¸ªç«å³åé ç®å½åé符 åä¸ä¸ª ç¹ç¹ çé ç¹ç¹ æä»¶åï¼è¿æç«å³è·éç ç®å½åé符 ã
- è¥åå¨ æ ¹ç®å½ ï¼åç§»é¤ç«å³è·éå®ä»¬çææ ç¹ç¹ åä»»ä½ ç®å½åé符 ã
- è¥æç»æä»¶åæ¯ ç¹ç¹ ï¼åç§»é¤ä»»ä½å°¾éç ç®å½åé符 ã
- è¥è·¯å¾ä¸ºç©ºï¼åæ·»å ä¸ä¸ª ç¹ ï¼ ./ çæ£å¸¸å½¢å¼æ¯ . ï¼
è·¯å¾å¯ç± begin() ä¸ end() 彿°è¿åçè¿ä»£å¨éå ç´ éåï¼è¿ä¼ä»¥éç¨æ ¼å¼æ¥çè·¯å¾ï¼å¹¶å¨æ ¹åãæ ¹ç®å½ååç»§æä»¶åå ç´ ä¸è¿ä»£ï¼è·³è¿ç®å½åé符ï¼é¤äºæ è¯æ ¹ç®å½è ï¼ãè¥è·¯å¾ä¸çæåå ç´ æ¯ç®å½åé符ï¼åæåçè¿ä»£å¨å°è§£å¼ç¨ä¸ºç©ºå ç´ ã
è°ç¨ä»»ä½ç path é const æå彿°ä¼ä»¤ææå¼ç¨è¯¥å¯¹è±¡å
ç´ çè¿ä»£å¨éæ³ã
è¥ OS 使ç¨å¼äºä¸è¿°å¯ç§»æ¤éç¨è¯æ³çåçè¯æ³ï¼ååºå½æ°è¢«å®ä¹ä¸ºæ¥åâåæ£æµæ ¼å¼âï¼ä»¥æ¥åä¸¤ç§æ ¼å¼çè·¯å¾åï¼å½ä¸ä» å½åæ£æµæ ¼å¼å¹é éç¨æ ¼å¼ï¼ä½ä¸ä¸ºæä½ç³»ç»ä½ä¸ºåçè·¯å¾æ¥åï¼æéç¨åæ£æµæ ¼å¼åæ°ãåçæ ¼å¼å¨ç®å½è·¯å¾ååæä»¶è·¯å¾åæå«ç OS ä¸ï¼è¥éç¨è·¯å¾å以ç®å½åéç¬¦ç»æ¢ï¼åå°å®å½åç®å½è·¯å¾ï¼å¦åå½åå¸¸è§æä»¶ã
任使 åµä¸ï¼ path 类表åå¦åå®ä»¥åçæ ¼å¼åå¨è·¯å¾åï¼å¹¶èªå¨äºæéåºå转æ¢å®ä¸ºéç¨æ ¼å¼ï¼æ¯ä¸ªæå彿°é½æå®å®è½¬è¯çè·¯å¾æ ¼å¼ï¼
POSIX ç³»ç»ä¸ï¼éç¨æ ¼å¼å°±æ¯åçæ ¼å¼ï¼å¹¶ä¸æ²¡æå¿ è¦åºå«æè½¬æ¢å®ä»¬ã
è·¯å¾å¯éå¼è½¬æ¢èªåè½¬æ¢æ std::basic_string ï¼è¿ä½¿å¾å¨æä»¶ API ä¸ä½¿ç¨å®ä»¬å¯è¡ï¼ä¾å¦ä½ä¸ºå° std::ifstream::open çåæ°
æåç±»åä¸å¸¸é
| Â | |||||||||||
| ç±»å | å®ä¹ | ||||||||||
value_type
|
æä»¶ç³»ç»åçç¼ç æç¨çå符类åï¼ POSIX ä¸ä¸º char ï¼ Windows ä¸ä¸º wchar_t | ||||||||||
string_type
|
std::basic_string<value_type> | ||||||||||
const_iterator
|
value_type 为 path ç常éçååè¿ä»£å¨ (LegacyBidirectionalIterator)
| ||||||||||
iterator
|
const_iterator çå«å
| ||||||||||
| ç¡®å®å¦ä½è½¬è¯è·¯å¾åçå符串表示
亦å®ä¹ä¸åæä¸¾é¡¹ï¼
(æä¸¾) | |||||||||||
æå常é
| constexpr value_type preferred_separator [éæ] |
å¨å¯ç§»æ¤ç / ä¹å¤å¯ç¨çå¦ä¸ç§ç®å½åé符ã Windows ä¸å®æ¯åææ å符 \ ã POSIX ä¸å®æ¯ä¸å¯ç§»æ¤åé符ç¸åçææ / (å ¬å¼éææå常é) |
æå彿°
æé ä¸ä¸ª path (å ¬å¼æå彿°) | |
鿝 path 对象 (å ¬å¼æå彿°) | |
| èµå¼å¦ä¸ä¸ªè·¯å¾ (å ¬å¼æå彿°) | |
| èµå¼å
容 (å ¬å¼æå彿°) | |
è¿æ¥ | |
| æ·»å å
ç´ å°å¸¦ç®å½åé符çè·¯å¾ (å ¬å¼æå彿°) | |
| è¿æ¥äºä¸ªè·¯å¾èä¸å å
¥ç®å½åé符 (å ¬å¼æå彿°) | |
ä¿®æ¹å¨ | |
| æ¦é¤å
容 (å ¬å¼æå彿°) | |
| 转æ¢ç®å½åé符为å好çç®å½åé符 (å ¬å¼æå彿°) | |
| ç§»é¤æä»¶åè·¯å¾ç»å (å ¬å¼æå彿°) | |
| 以å¦ä¸è·¯å¾æ¿æ¢ææ«çè·¯å¾ç»å (å ¬å¼æå彿°) | |
| æ¿æ¢æ©å±å (å ¬å¼æå彿°) | |
| 交æ¢ä¸¤ä¸ªè·¯å¾ (å ¬å¼æå彿°) | |
æ ¼å¼è§å¯å¨ | |
| è¿åè·¯å¾çåççæ¬ (å ¬å¼æå彿°) | |
| è¿å转æ¢å°å符串çåçè·¯å¾åæ ¼å¼ (å ¬å¼æå彿°) | |
| è¿å转æ¢å°å符串çéç¨è·¯å¾åæ ¼å¼ (å ¬å¼æå彿°) | |
æ¯è¾ | |
| 以åå
¸åºæ¯è¾äºä¸ªè·¯å¾çåå
¸è¡¨ç¤º (å ¬å¼æå彿°) | |
çæ | |
| 转æ¢è·¯å¾å°æ£å¸¸å½¢å¼ 转æ¢è·¯å¾å°ç¸å¯¹å½¢å¼ 转æ¢è·¯å¾å°åç¡®å½¢å¼ (å ¬å¼æå彿°) | |
åè§£ | |
| è¥åå¨åè¿åè·¯å¾çæ ¹å (å ¬å¼æå彿°) | |
| è¥åå¨åè¿åè·¯å¾çæ ¹ç®å½ (å ¬å¼æå彿°) | |
| è¥åå¨åè¿åè·¯å¾çæ ¹è·¯å¾ (å ¬å¼æå彿°) | |
| è¿åç¸å¯¹æ ¹è·¯å¾çè·¯å¾ (å ¬å¼æå彿°) | |
| è¿å亲路å¾çè·¯å¾ (å ¬å¼æå彿°) | |
| è¿åæä»¶åè·¯å¾ç»å (å ¬å¼æå彿°) | |
| è¿å主干路å¾ç»å (å ¬å¼æå彿°) | |
| è¿åæä»¶æ©å±åè·¯å¾ç»å (å ¬å¼æå彿°) | |
æ¥è¯¢ | |
| æ£æ¥è·¯å¾æ¯å¦ä¸ºç©º (å ¬å¼æå彿°) | |
| æ£æ¥å¯¹åºè·¯å¾å
ç´ æ¯å¦é空 (å ¬å¼æå彿°) | |
| æ£æ¥ root_path() æ¯å¦å¯ä¸æ è¯æä»¶ç³»ç»ä½ç½® (å ¬å¼æå彿°) | |
è¿ä»£å¨ | |
| 访é®ä½ä¸ºå
ç´ åºåçè·¯å¾çè¿ä»£å¨ (å ¬å¼æå彿°) | |
