簡體   English   中英

在使用C#創建目錄之前,是否需要檢查目錄是否存在?

[英]Is there any point in checking if a directory exists before creating it in C#?

當我想做涉及讀和寫目錄的任何事情時,我總是習慣檢查目錄是否存在,如果不存在,我將創建它。 這樣做有什么意義嗎? 如果我運行以下代碼,我不會例外。 創建一個已經存在的目錄並沒有什么不好。

Directory.CreateDirectory("C:\\test");
Directory.CreateDirectory("C:\\test");

對我來說,先檢查似乎是浪費資源。 如果該目錄不存在,則需要執行2條命令。 我可以想象CreateDirectory在執行任何操作之前先執行檢查,因此,在這種情況下,這樣做絕對是多余的。

所以提出這個問題。 創建目錄時,應該執行以下操作還是可以放棄if語句?

if(Directory.Exists("C:\\test")) Directory.CreateDirectory("C:\\test");

注意-我知道這里的性能優勢非常之小,我對保持代碼整潔和不需要的行更感興趣。

根據msdn,如果它已經存在,則不會創建

除非在路徑中指定的目錄已經存在或路徑的某些部分無效,否則將創建該目錄中指定的所有目錄。 如果目錄已經存在,則此方法不會創建新目錄,但會為現有目錄返回DirectoryInfo對象。

您也可以在此處檢查源並檢查目錄是否存在。

Directory.CreateDirectory

除非已存在,否則在指定路徑中創建所有目錄和子目錄。

如果您打算創建新目錄或使用現有目錄,則無需檢查是否存在。

此外,閱讀有關Directory.Exists

如果嘗試確定指定文件是否存在時發生任何錯誤,則Exists方法將返回false

Exists不能用來確定CreateDirectory是否會成功,所以您是對的,這沒有任何意義。 CreateDirectory期間仍將引發任何異常(例如,無效名稱)。

僅當目錄已存在時您必須執行某些操作(例如,關閉位於此目錄中的打開文件或將此信息添加到日志中)才有意義。

暫無
暫無

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

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