台灣最大程式設計社群網站
線上人數
2293
 
會員總數:243634
討論主題:188245
歡迎您免費加入會員
討論區列表 >> VB.NET >> 請問要如何判斷字串是正確的檔案路徑?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問要如何判斷字串是正確的檔案路徑?
價值 : 50 QP  點閱數:248 回應數:7

樓主

city
初學者
50 30
1028 172
發送站內信

請問各位前輩們:

要如何判斷一個字串是否正確的檔案路徑?(路徑+檔名+副檔名)
(不是要判斷檔案是否存在)

比如一個正確的檔案路徑:
D:\try\data.txt
(不是要判斷D槽是否有data.txt)

如果輸入錯誤的檔案路徑字串,例如:
ABC
D:\A
A.txt
D:\\\\....txt
ABC.DEF
D:\ABC.DEF.GHI

要如何分辨這些是錯誤的檔案路徑?

謝謝~~


搜尋相關Tags的文章: [ VB.NET ] , [ 判斷 ] , [ 字串 ] , [ 正確 ] , [ 檔案路徑 ] ,
本篇文章發表於2018-10-05 20:52
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
不錯的參考

小羊窒息
捐贈 VP 給 小羊窒息 檢舉此回應
D:\A

D:\ABC.DEF.GHI

這2個是正確的哦...
本篇文章回覆於2018-10-05 22:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

小魚
檢舉此回應
如果是這樣,
那就是字串的分析了,
但是首先你要先知道 "什麼叫做正確的檔名",
才有辦法分析,
這部分網路上應該可以找得到,
或是可以多方嘗試輸入各種奇怪的檔名,
如果會報錯誤就是錯誤的格式了.
本篇文章回覆於2018-10-06 17:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

city
檢舉此回應
To:小羊窒息 小魚

試了一下
VB.NET似乎是沒有內建函式可以判斷字串是否是正確的檔案路徑

而判斷字串是否為正確的檔案路徑有點複雜...

目前交給Try Catch來捕捉錯誤
本篇文章回覆於2018-10-09 12:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
不錯的參考

初階MIS
檢舉此回應
File.Exists(路徑) 這個涵式是可以判斷此路徑是否是有效路徑
不知道你是不是在找這個
本篇文章回覆於2018-10-09 15:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
不錯的參考

誰是誰
檢舉此回應
題目稱為: 正確的檔案路徑。
問題在於,這 "正確" 的定義是甚麼 ? 是符合 Windows 路徑格式稱為正確 ? 還是在執行檔運行的電腦上有這個路徑稱為正確?
問題問不清楚,當然別人也很難告訴你正確的答案。
本篇文章回覆於2018-10-09 15:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

city
檢舉此回應
To:初階MIS

這個函式應該是判斷電腦中有沒有這個檔案

而不是判斷字串是否為正確路徑
本篇文章回覆於2018-10-09 16:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

city
檢舉此回應
To:誰是誰

比方說有個類別 裡面有個方法
這個方法的功用是:使用者輸入檔案路徑字串 如果電腦內沒有這個檔案就新增這個檔案 如下:



我測試一下

我在桌面上新增一個專案(C:\Users\city\Desktop\try) 在Form1裡測試這個類別

如果我輸入D:\AA\BB\data.txt 就會在D:\AA\BB裡面新增一個data.txt

然後我隨便輸入ABC
結果程式並沒有出現錯誤
可是也不知道ABC跑去哪裡了
後來找一下 在C:\Users\city\Desktop\try\bin\Debug\裡面找到了ABC

照理說ABC根本不是個正確的檔案路徑
而且也沒有副檔名
可是卻產生了這個檔案 而且是出現在奇怪的地方

後來又測試了:

ABC.DEF
結果在C:\Users\city\Desktop\try\bin\Debug\裡面出現ABC.DEF

D:\data.....
結果在D槽出現data
照理說data後面有.... 可是新增出來的檔案卻沒有

D:\..\..data.txt
結果D槽出現..data.txt
而不是D槽裡面的..資料夾裡面的..data.txt

D:\...\data.txt
出現錯誤

D:\AA\BB..\data.txt
出現錯誤

D:\AA\BB..BB\data.txt
D槽AA資料夾裡面的BB..BB資料夾裡面出現data.txt

D:\ABC.DEF.GHI
D槽出現ABC.DEF.GHI
照理說根本就沒有GHI這個副檔名

..\AA\BB..BB\data.txt
結果在C:\Users\city\Desktop\try\bin\Debug\AA\BB..BB裡面出現data.txt

由此看來 使用者輸入的字串跟最後結果的路徑不一定相同

還有些爭議的
比如電腦中只有C:\ D:\ E:\
如果輸入 X:\data.txt
程式會出現錯誤
可是X:\data.txt卻是一個正確的路徑

還有要判斷路徑長度 是否有特殊字元\ / : * ? < > |

蠻麻煩的
想說如果VB.NET沒有內建的函式 那我也不管了
就把程式碼丟進Try Catch裡面
讓Try Catch自己去捕捉錯誤
本篇文章回覆於2018-10-09 17:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.