[問題] 如何判斷網路路徑

看板C_and_CPP作者 (小黑要乖喔)時間15年前 (2010/01/08 07:01), 編輯推噓4(408)
留言12則, 5人參與, 最新討論串1/1
開發平台為BCB6, 我想寫一個類似robocopy的功能, 最近遇到一個問題是,我無法判斷我輸入的檔案路徑 是屬於網路硬碟的,還是本機磁碟, 想要能判斷的原因是如果能判斷出該路徑為網路硬碟的, 我還要去針對目前網路連線作一下判別, 不知道有沒有辦法去判斷,輸入的路徑屬與本機還是網路呢? 例如robocopyplus aaa bbb ==>本機路徑 robocopyplys \\網路硬碟\aaa ==>網路硬碟 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.126.200.189

01/08 16:53, , 1F
\\
01/08 16:53, 1F

01/08 17:07, , 2F
if (str[0] == '\' && str[1] == '\') // 網路硬碟
01/08 17:07, 2F

01/08 17:07, , 3F
不過因為跳脫字元問題 應該要寫成 '\\'
01/08 17:07, 3F

01/08 17:07, , 4F
如果只判斷\\是可以,但是網路磁碟也是有絕對路徑啊
01/08 17:07, 4F

01/08 17:32, , 5F
popen("net use x:")
01/08 17:32, 5F

01/08 17:33, , 6F
或直接net use列出現有的
01/08 17:33, 6F

01/08 17:34, , 7F
另外\\開頭的就是叫絕對路徑了 你這樣講有點難懂
01/08 17:34, 7F

01/08 17:34, , 8F
應該說 連線成網路磁碟機之後 就可以用磁碟代號存取
01/08 17:34, 8F

01/08 17:45, , 9F
這個跟C沒有特別的關係吧..
01/08 17:45, 9F

01/08 18:50, , 10F
那就想辦法列出目前所有的網路磁碟吧
01/08 18:50, 10F

01/08 20:02, , 11F
如果你是win32的程式 可以用PathIsNetworkPath()的API檢查
01/08 20:02, 11F

01/08 20:02, , 12F
宣告在shlwapi.h裡面 這裡面全部都是跟處理path有關的API
01/08 20:02, 12F
文章代碼(AID): #1BHjXCtB (C_and_CPP)