C# 程式檢查路徑是目錄還是檔案
簡介
讓我們學習如何編寫 C# 程式來檢查路徑是目錄還是檔案。目錄,也稱為資料夾,是計算機上儲存檔案的位置。除了檔案外,目錄還包含其他目錄或快捷方式。
檔案是驅動器上的一組資料,具有唯一的識別符號和目錄路徑。當開啟檔案以進行檢視或寫入時,它會轉換為流。流只是遍歷通訊路徑的一系列位元組。
檔案與目錄
檔案是真實的資料檔案,而目錄是系統上邏輯檔案放置的儲存庫。要處理檔案和目錄,公共語言執行時 (CLR) 在 System.IO 名稱空間中具有 File、FileInfo、Directory 和 DirectoryInfo 類。
要處理 C# 中的目錄,我們可以使用 Directory 或 DirectoryInfo。Directory 類是具有處理目錄的靜態函式的靜態類。此類不能被繼承。DirectoryInfo 例項提供有關特定目錄的資訊。
資料夾有一個檔案類和一個檔案資訊類。File 類用於複製、移動、重新命名、建立、開啟、刪除和新增到單個檔案的常見任務。File 類還可用於獲取和更改與檔案建立、訪問和寫入相關的檔案特性或 DateTime 資訊。File 和 FileInfo 類都具有相同的基本功能。
唯一的區別在於 File 類具有處理檔案的內在方法,而 FileInfo 類具有處理檔案的例項方法。
Public static bool Exists (string? path); 用於檢查檔案或目錄是否存在。這裡的引數是 string? path。這是要檢查的路徑。它的返回型別是布林值。此函式為布林值的原因是,當檢查路徑時,只有兩種結果。檔案或目錄存在或不存在,就像函式的關鍵字一樣。因此,如果目錄或檔案存在,則在此處返回 true,如果不存在或在嘗試訪問地址(例如損壞的地址或更多)時發生任何型別的錯誤,則返回 false。
演算法
以下演算法將提供一個分步過程,用於編寫一個程式來檢查給定的路徑是目錄還是檔案。
步驟 1 − 首先,我們必須宣告一個包含我們要檢查其是檔案還是目錄的地址的字串
步驟 2 − 然後必須進行條件檢查,在其中我們使用方法 public static bool Exists (string? path); 來檢查檔案是否存在。
步驟 3 − 完全由程式設計師決定他想要首先檢查什麼。他是否想將路徑檢查為檔案或目錄。
步驟 4 − 如果路徑未透過兩個檢查,則輸出將顯示為無效路徑,並將其作為訊息顯示。
示例
// For File.Exists, Directory.Exists using System; using System.IO; class ttpt { static void Main() { string PathCheck = “D:/ipl”; // Here we check that the input path is a file if(File.Exists(PathCheck)) { // If the path provided is a file Console.WriteLine(“A file exists on this path”); } // Here we check if the path as input is a directory else if(Directory.Exists(PathCheck)) { // This input path is a directory Console.WriteLine(“A directory exists on this path”); } // If it is invalid i.e., it is neither directory nor a path else { Console.WriteLine("{0} is invalid. The input is neither a file nor a directory.", path); } } }
輸出
A file exists on this path
上面提到的程式碼用於檢查提供的路徑是否為檔案。在程式碼中,首先,我們聲明瞭一個字串來儲存地址,以檢查它是否為檔案或目錄。然後我們使用 public static bool Exists (string? path); 它可以與 File 和 Directory 類一起使用,透過使用相應的類關鍵字來檢查檔案或目錄的存在。這可以透過使用條件檢查來完成。如果使用者想要進行批次檢查,則可以透過建立類將地址陣列作為引數傳遞。然後逐個檢查它們。由於 public static bool Exists (string? path); 返回一個布林值,因此我們正在進行條件檢查。
在驗證目錄是否存在之前,會從路徑引數的結尾刪除尾隨空格。
path 引數的大小寫敏感性與程式碼正在執行的檔案系統相關。例如,NTFS(常用的 Windows 檔案系統)不區分大小寫,而 Linux 檔案系統區分大小寫。
時間複雜度
在演算法中,宣告字串之後。public static bool Exists (string? path); 方法是一個返回布林值的函式。因為它直接對我們正在搜尋的元素進行單次呼叫,所以演算法的時間複雜度為 O(1)。
結論
因此,我們已經到達了本文的結尾,並且我們已經學習瞭如何檢查提供的路徑是目錄還是檔案。我們從檔案和目錄的定義開始,然後我們繼續並瞭解了檔案和目錄之間的區別。然後我們瞭解了程式的演算法,然後我們看到了檢查路徑的程式。我們希望本文能增強您對 C# 的瞭解。