看板 C_and_CPP 關於我們 聯絡資訊
一開始看問題還看得懂在問什麼, 看到後來愈來愈模糊... : 問題(Question): : 1.能否新增資料夾 目前這些指令應沒被收為標準, 但許多 compiler 都有實做, 然而其 header 並沒一致, 但這些函式從 tc 時代就已經出來, 到現在仍有許多 compiler 會實做. VC: direct.h BCB: dir.h gcc: (沒用過,待其它人補充) (1) create folder: mkdir / _mkdir (2) change directory: chdir / _chdir (3) delete file: unlink / _unlink ; remove (4) get current directory: getcwd 如果只是要判斷檔案是否存在的話可以用 access, 這個函式可以判斷檔案不少狀態,單純看存不存在的話 if(access("filename.txt", 0)==0) // exists. else // doesn't exist. 其它有興趣的話自己再 access 挖出來玩玩。 要建立資料夾,一次只能建立一層;假設你要建立 C:\A\B 但連資料夾 A 都不存在的話,必須先建立 C:\A 再建立 C:\A\B。 上面這些事也可以用 Win32 API 去做上面這些事, 這樣的話就不用煩惱這個 compiler 要用哪個 header, 全都在 windows.h 裡面 CreateDirectory、CreateFile、DeleteFile、 GetCurrentDirectory、ChangeCurrentDirectory... etc windows.h 裡面針對檔案、目錄還有更多 API, 有興趣的話上 MSDN 查查。 : 2.fstream的open能否開啟除了程式資料夾內以外的txt檔 會問這個問題我推測應是 "相對路徑" 和 "絕對路徑" 沒有很熟.. -------------------- (1) fstream f; f.open("Read.txt", iso::in); // 在同一路徑開啟 Read.txt -------------------- (2) fstream f; f.open("..\\Read.txt", iso::in); // 在此資料夾上層開啟 Read.txt -------------------- (3) fstream f; f.open("D:\\Read.txt", iso::in); // 指定開啟 D:\ 底下之 Read.txt -------------------- 你平常用的是 (1) , 只是你現在換成 (3) 而已,不是嗎?
stupid2:相對路徑?可以打開包含主程式的資料夾內的資料夾的資料嗎?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 看到後來我實在弄不懂你最終是要開啟檔案還是要開啟資料夾? 如果是要開啟資料夾的話等於是要歷遍該路徑的所有檔案與資料夾, 在此我假設你是要開啟的是檔案 假設你現在是在 C:\Test 路徑,要開啟檔案為 C:\Test\Sub1\Sub2\a.txt 以相對路徑之寫法 fstream f; f.open("\\Sub1\\Sub2\\a.txt"); : 我是想做一個類似記帳簿的程式,這問題真的很難解決嗎?(或者無解) ^^^^^^^^^^^^^^^^^ 恕我先打個插 我不是想為它版打廣告,而是真心認為 excel 可以絕對滿足你的需求. (excel 和 google 是我認為 21 世紀以來人類最偉大的發明..) 如果你要自己寫的話,難不難解決應是取決於 計劃的程式有多大、架構規劃的好不好. 如果你可以接受你所有存下來的檔案都是用 .csv / .txt 方式存 那和用什麼程式語言 "可能" 不會是太大關係, ( 頂多就是細節繁鎖一點而已) 架構規劃可能才是重點吧 : ------------------------------------------------- : 在補充個東西~我是不介意黑底白字的視窗啦~主要只是想把資料做分類而已 ^^^^^^^^^^^^^^^^^ Lincoln Beach Black Hole Organizer Collectify MyStuff -- YouLoveMe() ? LetItBe() : LetMeFree(); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.76.142 ※ 編輯: tropical72 來自: 180.177.76.142 (12/21 04:28)
stupid2:感謝大大用心回覆~~我想開的還是資料啦~我寫的太亂了@@ 12/21 08:11
stupid2:資料夾上層和下層(?)的定義是? 12/21 08:14
tropical72:先去弄清楚相對路徑和絕對路徑是什麼. 12/21 08:26
stupid2:我知道相對路徑和絕對路徑的意思啦@@ 12/21 08:32
stupid2:只是我感覺第二個怎麼不是資料夾內的資料夾的檔案? 12/21 08:33
stupid2:看D://是D底下~那//的不就應該是某某底下(我的推測@@) 12/21 08:35
tropical72:你的斜線打反了.另,你有用過 cd .. 這個指令嗎? 12/21 08:54
tropical72:..\A 代表上一層的A; .\xxxx 代表這一層的A 12/21 08:55
tropical72:自己實際去try比較快啦. 12/21 08:58
stupid2:遵命~這些東西我還真的都沒碰過@@ 12/21 12:24
sunneo:man 2 mkdir: int mkdir(const char *path, mode_t mode) 12/21 14:45
stupid2:剛剛測試完路徑的東西~歡呼的被室友當瘋子@@ 12/22 00:26