亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在C#中,檢查文件名*可能*有效(不存在)

在C#中,檢查文件名*可能*有效(不存在)

C#
喵喵時光機 2019-12-20 10:40:42
System.IO命名空間中是否存在用于檢查文件名有效性的方法?例如,C:\foo\bar將驗證而:"~-*不會或更棘手的是,X:\foo\bar將驗證系統上是否有X:驅動器,但不會。我想我可以自己編寫這樣的方法,但是我對內置方法更感興趣。
查看完整描述

3 回答

?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

做就是了;


System.IO.FileInfo fi = null;

try {

  fi = new System.IO.FileInfo(fileName);

}

catch (ArgumentException) { }

catch (System.IO.PathTooLongException) { }

catch (NotSupportedException) { }

if (ReferenceEquals(fi, null)) {

  // file name is not valid

} else {

  // file name is valid... May check for existence by calling fi.Exists.

}

用于創建FileInfo實例的文件不需要存在。


查看完整回答
反對 回復 2019-12-20
?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

您可以從Path.GetInvalidPathChars和GetInvalidFileNameChars獲取無效字符列表,如本問題所述。


如jberger所述,此方法的響應中未包含其他一些字符。有關Windows平臺的更多詳細信息,請查看MSDN 上的命名文件,路徑和命名空間,


正如Micah 指出的那樣,存在Directory.GetLogicalDrives來獲取有效驅動器的列表。


查看完整回答
反對 回復 2019-12-20
?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

您可以使用System.Uri類。Uri類不僅對Web URL有用,而且還處理文件系統路徑。使用Uri.TryCreate方法查找路徑是否是根目錄,然后使用IsLoopback屬性確定Uri是否引用本地計算機。


這是一個簡單的方法,可確定字符串是否為有效的,本地的且有根的文件路徑。


public bool IsPathValidRootedLocal(String pathString) {

    Uri pathUri;

    Boolean isValidUri = Uri.TryCreate(pathString, UriKind.Absolute, out pathUri);

    return isValidUri && pathUri != null && pathUri.IsLoopback;

}

我相信這會奏效。


查看完整回答
反對 回復 2019-12-20
  • 3 回答
  • 0 關注
  • 710 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號