FileSystemWatcher.Path Özellik

Tanım

Dizinin yolunu alır veya watch olarak ayarlar.

C#
public string Path { get; set; }
C#
[System.ComponentModel.TypeConverter("System.Diagnostics.Design.StringValueConverter, System.Design, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
[System.IO.IODescription("FSW_Path")]
public string Path { get; set; }
C#
[System.IO.IODescription("FSW_Path")]
[System.ComponentModel.TypeConverter("System.Diagnostics.Design.StringValueConverter, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public string Path { get; set; }
C#
[System.IO.IODescription("FSW_Path")]
[System.ComponentModel.SettingsBindable(true)]
[System.ComponentModel.TypeConverter("System.Diagnostics.Design.StringValueConverter, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public string Path { get; set; }
C#
[System.ComponentModel.SettingsBindable(true)]
public string Path { get; set; }

Özellik Değeri

İzlenecek yol. Varsayılan değer, boş dizedir ("").

Öznitelikler

Özel durumlar

Belirtilen yol yok veya bulunamadı.

-veya-

Belirtilen yol joker karakterler içeriyor.

-veya-

Belirtilen yol geçersiz yol karakterleri içeriyor.

Örnekler

Aşağıdaki örnek, çalışma zamanında belirtilen dizini watch için bir FileSystemWatcher oluşturur. Bileşen, ve LastAccess zamanındaki değişiklikler, dizindeki LastWrite metin dosyalarının oluşturulması, silinmesi veya yeniden adlandırılması için watch olarak ayarlanır. Bir dosya değiştirilir, oluşturulur veya silinirse, dosyanın yolu konsola yazdırılır. Bir dosya yeniden adlandırıldığında, eski ve yeni yollar konsola yazdırılır.

C#
using System;
using System.IO;

namespace MyNamespace
{
    class MyClassCS
    {
        static void Main()
        {
            using var watcher = new FileSystemWatcher(@"C:\path\to\folder");

            watcher.NotifyFilter = NotifyFilters.Attributes
                                 | NotifyFilters.CreationTime
                                 | NotifyFilters.DirectoryName
                                 | NotifyFilters.FileName
                                 | NotifyFilters.LastAccess
                                 | NotifyFilters.LastWrite
                                 | NotifyFilters.Security
                                 | NotifyFilters.Size;

            watcher.Changed += OnChanged;
            watcher.Created += OnCreated;
            watcher.Deleted += OnDeleted;
            watcher.Renamed += OnRenamed;
            watcher.Error += OnError;

            watcher.Filter = "*.txt";
            watcher.IncludeSubdirectories = true;
            watcher.EnableRaisingEvents = true;

            Console.WriteLine("Press enter to exit.");
            Console.ReadLine();
        }

        private static void OnChanged(object sender, FileSystemEventArgs e)
        {
            if (e.ChangeType != WatcherChangeTypes.Changed)
            {
                return;
            }
            Console.WriteLine($"Changed: {e.FullPath}");
        }

        private static void OnCreated(object sender, FileSystemEventArgs e)
        {
            string value = $"Created: {e.FullPath}";
            Console.WriteLine(value);
        }

        private static void OnDeleted(object sender, FileSystemEventArgs e) =>
            Console.WriteLine($"Deleted: {e.FullPath}");

        private static void OnRenamed(object sender, RenamedEventArgs e)
        {
            Console.WriteLine($"Renamed:");
            Console.WriteLine($"    Old: {e.OldFullPath}");
            Console.WriteLine($"    New: {e.FullPath}");
        }

        private static void OnError(object sender, ErrorEventArgs e) =>
            PrintException(e.GetException());

        private static void PrintException(Exception? ex)
        {
            if (ex != null)
            {
                Console.WriteLine($"Message: {ex.Message}");
                Console.WriteLine("Stacktrace:");
                Console.WriteLine(ex.StackTrace);
                Console.WriteLine();
                PrintException(ex.InnerException);
            }
        }
    }
}

Açıklamalar

Bu, bir dizinin tam yoludur. IncludeSubdirectories özelliği isetrue, bu dizin sistemin değişiklikleri izlediği kök dizindir; aksi takdirde izlenen tek dizindir. Belirli bir dosyayı watch için, özelliğini tam, doğru dizine, Filter özelliği ise dosya adına ayarlayınPath.

özelliği Evrensel Path Adlandırma Kuralı (UNC) yollarını destekler.

Not

Bileşenin değişiklikler için watch önce bu özelliğin ayarlanması gerekir.

Bir dizin yeniden adlandırıldığında, FileSystemWatcher otomatik olarak kendisini yeni yeniden adlandırılan öğeye yeniden ekler. Örneğin, özelliğini "C:\Belgelerim" olarak ayarlar Path ve ardından dizini el ile "C:\Belgeleriniz" olarak yeniden adlandırırsanız, bileşen yeni yeniden adlandırılan dizinde değişiklik bildirimlerini dinlemeye devam eder. Ancak, özelliği istediğinizde Path , eski yolu içerir. Bunun nedeni, bileşenin dizinin adı yerine tanıtıcıyı temel alarak hangi dizinin izlediğini belirlemesidir. Yeniden adlandırma tutamacı etkilemez. Bu nedenle, bileşeni yok eder ve ardından özelliği güncelleştirmeden Path yeniden oluşturursanız, dizin artık mevcut olmadığından uygulamanız başarısız olur.

Şunlara uygulanır

Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Ayrıca bkz.