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::filesystem_error
- std::filesystem::directory_entry
- std::filesystem::directory_iterator
- std::filesystem::file_time_type
- 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::current_path
std::filesystem::current_path
è¿åææ´æ¹å½åè·¯å¾ã
1-2) è¿åå½åå·¥ä½ç®å½çç»å¯¹è·¯å¾ï¼å¦åéè¿ POSIX getcwd åå¾ï¼ä»¥åçæ ¼å¼ï¼ãè¥é误åçå (2) è¿å path() ã
åæ°
è¿åå¼
1-2) è¿åå½åå·¥ä½ç®å½ã
3-4) ï¼æ ï¼
å¼å¸¸
1-2) 䏿¥å std::error_code& åæ°çéè½½å¨åºå± OS API éè¯¯æ¶æåº filesystem_error ï¼ä»¥ä½ä¸ºé误ç åæ°ç OS éè¯¯ç æé ãè¥ OS API è°ç¨å¤±è´¥ï¼åæ¥å std::error_code& åæ°çéè½½è®¾ç½®è¯¥åæ°ä¸º OS API é误ç ï¼èè¥ä¸åºç°éè¯¯åæ§è¡ ec.clear() ãè¥å
ååé
失败ï¼åä»»ä½ä¸æ 记为
noexcept çéè½½å¯è½æåº std::bad_alloc ã3-4) 䏿¥å std::error_code& åæ°çéè½½å¨åºå± OS API éè¯¯æ¶æåº filesystem_error ï¼ä»¥ç¬¬ä¸ path åæ°
p åä½ä¸ºé误ç åæ°ç OS éè¯¯ç æé ãè¥ OS API è°ç¨å¤±è´¥ï¼åæ¥å std::error_code& åæ°çéè½½è®¾ç½®è¯¥åæ°ä¸º OS API é误ç ï¼èè¥ä¸åºç°éè¯¯åæ§è¡ ec.clear() ãè¥å
ååé
失败ï¼åä»»ä½ä¸æ 记为 noexcept çéè½½å¯è½æåº std::bad_alloc ãæ³¨æ
å½åå·¥ä½ç®å½æ¯ä¸è¿ç¨å ³èçç®å½ï¼å®è¢«ç¨ä½ç¸å¯¹è·¯å¾çè·¯å¾åè§£æä¸çèµ·å§ä½ç½®ã
è®¸å¤æä½ç³»ç»è¿åçå½åè·¯å¾æ¯å±é©çå ¨å±åéãç¬¬ä¸æ¹æç³»ç»åºå½æ°ï¼æå¦ä¸çº¿ç¨å¯è½æªç»æå¾ å°æ´æ¹å®ã
示ä¾
è¿è¡æ¤ä»£ç
#include <iostream> #include <filesystem> namespace fs = std::filesystem; int main() { std::cout << "Current path is " << fs::current_path() << '\n'; }
å¯è½çè¾åºï¼
Current path is "D:/local/ConsoleApplication1"
