Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program C# untuk menyemak sama ada laluan ialah direktori atau fail

Program C# untuk menyemak sama ada laluan ialah direktori atau fail

WBOY
WBOYke hadapan
2023-09-05 17:49:02634semak imbas

C# 程序检查路径是目录还是文件

Pengenalan

Mari kita belajar cara menulis program C# untuk menyemak sama ada laluan ialah direktori atau fail. Direktori, juga dipanggil folder, ialah lokasi pada komputer anda di mana fail boleh disimpan. Selain fail, direktori juga mengandungi direktori atau pintasan lain.

Fail ialah koleksi data pada pemacu dengan pengecam unik dan laluan direktori. Apabila fail dibuka untuk dilihat atau ditulis, ia ditukar kepada strim. Strim hanyalah urutan bait yang melintasi laluan komunikasi.

Fail dan Direktori

Fail ialah fail data sebenar, manakala direktori ialah repositori tempat fail logik diletakkan pada sistem. Untuk mengendalikan fail dan direktori, masa jalan bahasa biasa (CLR) mempunyai kelas Fail, FileInfo, Direktori dan DirectoryInfo dalam ruang nama System.IO.

Untuk mengendalikan direktori dalam C#, kami boleh menggunakan Directory atau DirectoryInfo. Kelas Direktori ialah kelas statik dengan fungsi statik untuk mengendalikan direktori. Kelas ini tidak boleh diwarisi. Kejadian DirectoryInfo memberikan maklumat tentang direktori tertentu.

Sesuatu folder mempunyai kelas fail dan kelas maklumat fail. Kelas Fail digunakan untuk melaksanakan tugas biasa seperti menyalin, mengalih, menamakan semula, mencipta, membuka, memadam dan menambah pada satu fail. Kelas Fail juga boleh digunakan untuk mendapatkan dan menukar ciri fail atau maklumat tarikh masa yang berkaitan dengan penciptaan, akses dan penulisan fail. Kedua-dua kelas Fail dan FileInfo mempunyai fungsi asas yang sama.

Satu-satunya perbezaan ialah kelas Fail mempunyai kaedah dalaman untuk mengendalikan fail, manakala kelas FileInfo mempunyai kaedah contoh untuk mengendalikan fail.

Bool statik awam wujud (String? Path) digunakan untuk menyemak sama ada fail atau direktori wujud. Adakah parameter di sini rentetan? laluan. Ini adalah laluan untuk menyemak. Jenis pulangannya ialah boolean. Sebab fungsi ini adalah boolean ialah apabila menyemak laluan, hanya terdapat dua hasil. Fail atau direktori sama ada wujud atau tidak wujud, sama seperti kata kunci fungsi. Jadi ia mengembalikan benar jika direktori atau fail wujud dan palsu jika ia tidak wujud atau sebarang jenis ralat berlaku semasa cuba mengakses alamat (seperti alamat rosak atau lebih).

Algoritma

Algoritma di bawah akan memberikan proses langkah demi langkah untuk menulis atur cara untuk menyemak sama ada laluan yang diberikan ialah direktori atau fail.

Langkah 1 - Mula-mula kita perlu mengisytiharkan rentetan yang mengandungi alamat di mana kita ingin menyemak sama ada ia adalah fail atau direktori

Langkah 2 Kemudian pemeriksaan syarat mesti dilakukan, kita menggunakan kaedah public static bool Exists (string? path); untuk menyemak sama ada fail itu wujud.

Langkah 3 Terserah sepenuhnya kepada pengaturcara untuk memutuskan perkara yang ingin disemak terlebih dahulu. Adakah dia mahu menyemak laluan fail atau direktori.

Langkah 4 Jika laluan gagal kedua-dua semak, output ialah laluan tidak sah dan dipaparkan sebagai mesej.

Contoh

// 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);
      }
   }
}

Output

A file exists on this path

Kod di atas menyemak sama ada laluan yang disediakan ialah fail. Pertama dalam kod kami mengisytiharkan rentetan untuk menyimpan alamat untuk menyemak sama ada ia adalah fail atau direktori. Kemudian kami menggunakan public static bool Exists(string?path); yang boleh digunakan dengan kelas Fail dan Direktori untuk menyemak sama ada fail atau direktori wujud dengan menggunakan kata kunci kelas yang sepadan. Ini boleh dilakukan dengan menggunakan pemeriksaan bersyarat. Jika orang ingin melakukan semakan kelompok, mereka boleh menghantar tatasusunan alamat sebagai parameter dengan membuat kelas. Kemudian semak satu persatu. Memandangkan bool statik awam Wujud (string?path); sebab kami melakukan semakan bersyarat.

Ruang jejak akan dialih keluar dari hujung parameter laluan sebelum mengesahkan bahawa direktori itu wujud.

Sensitiviti kes bagi parameter laluan adalah berkaitan dengan sistem fail tempat kod tersebut dilaksanakan. Contohnya, NTFS (sistem fail Windows biasa) tidak sensitif huruf besar-besaran, manakala sistem fail Linux sensitif huruf besar-kecil.

Kerumitan masa

Dalam algoritma selepas mengisytiharkan rentetan. public static bool Wujud (string?path); Kaedah ini ialah kaedah pengembalian Boolean. Kerana ia membuat satu panggilan terus ke elemen yang kami cari, kerumitan masa algoritma ini ialah O(1).

Kesimpulan

Jadi, kami telah sampai ke penghujung artikel dan kami telah mempelajari cara menyemak sama ada laluan yang disediakan ialah direktori atau fail. Kami bermula dengan definisi fail dan direktori dan kemudian teruskan untuk memahami perbezaan antara fail dan direktori. Kemudian kami belajar tentang algoritma program dan selepas itu kami melihat program untuk menyemak laluan. Kami berharap artikel ini telah meningkatkan pemahaman anda tentang C#.

Atas ialah kandungan terperinci Program C# untuk menyemak sama ada laluan ialah direktori atau fail. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam