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# 的瞭解。

更新於: 2023年4月21日

4K+ 瀏覽量

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告