簡體   English   中英

我應該使用什么類型來表示參數是C#中的文件名?

[英]What type should I use to indicate an argument is a filename in C#?

我的函數需要一個文件名,以便它可以讀取和/或寫入該文件。 為此,我可以使用一個簡單的字符串

void myFunc(string filename)

但我寧願通過要求更專業的類型而不是檢測""在方法中沒有有效的文件名而具有更多的類型安全性。

File不起作用,因為它是靜態的。

可以使用類FileInfo ,但我不記得我遇到過這種類型的文件名參數。

在個人項目中,我編寫了自己的類,只是檢查文件名是否格式正確等等。例如,在創建文件名時拋出異常,而不是在方法本身。

由於新項目范圍更廣,我認為最好使用通用標准,以免混淆其他用戶(或者在未來幾周內我的未來)。

您對FileInfo思考是正確的 - 它唯一的構造函數有一個fileName參數,它會為您執行基本驗證。 來自MSDN

public FileInfo(string fileName)

如果由於某種原因發現FileInfo不足,您可能會以更接近System.Uri的方式處理文件名。 Uri不一定總是與文件相關,但文件路徑可以是Uri的示例,而Microsoft的實現通過IsFile屬性支持它。 可以想象一個強制繼承Uri和IsFile的FileUri類。

值得一提的是,在我一直關注的大多數MSDN片段中,文件路徑和名稱只是作為字符串傳遞的。 這可能只是為了方便。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM