Dizin Dosya İzleme | C#
Merhaba, ağ üzerindeki bir yoldan WEB uygulaması ile dosyaya erişemedim bir türlü.
Uygulama havuzunda Administrator yetkisi de verdik olmadı.
Ben de mesele daha fazla çözümsüz kalmasın diyerek ufak bir uygulama yazdım ağdaki bu dizini dinleyen.
Orada bir dosya oluştuğu anda WEB sunucusunda bir dizine çekiyorum ve web uygulamasından o yoldaki dosyaya erişerek işlemi tamamlıyorum.
Bunun için FileSystemWatcher sınıfını kullandım.
string sourceDirectory1 = @"\\1.1.1.1\applicationData\Docman\GENEL";
string targetDirectory1 = @"c:\Users\Administrator\Documents\FTP\API\VER\";
using var watcher1 = new FileSystemWatcher(sourceDirectory1)
{
NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite,
Filter = "*.*",
EnableRaisingEvents = true
};
watcher1.Created += (sender, e) =>
{
try
{
string sourceFilePath = e.FullPath;
string fileName = Path.GetFileName(sourceFilePath);
string targetFilePath = Path.Combine(targetDirectory1, fileName);
File.Copy(sourceFilePath, targetFilePath, true);
Console.WriteLine($"Dosya kopyalandı: {fileName}, {DateTime.Now.ToString()}");
}
catch (Exception ex)
{
Console.WriteLine($"Hata: {ex.Message}");
}
};
string sourceDirectory2 = @"\\1.1.1.1\TempPdf";
string targetDirectory2 = @"c:\Users\Administrator\Documents\FTP\API\SAL";
using var watcher2 = new FileSystemWatcher(sourceDirectory2)
{
NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite,
Filter = "*.*",
EnableRaisingEvents = true
};
watcher2.Created += (sender, e) =>
{
try
{
string sourceFilePath = e.FullPath;
string fileName = Path.GetFileName(sourceFilePath);
string targetFilePath = Path.Combine(targetDirectory2, fileName);
File.Copy(sourceFilePath, targetFilePath, true);
Console.WriteLine($"Dosya kopyalandı: {fileName}, {DateTime.Now.ToString()}");
}
catch (Exception ex)
{
Console.WriteLine($"Hata: {ex.Message}");
}
};
Console.WriteLine("Dizin izleniyor... Çıkmak için 'Enter' tuşuna basın.");
Console.ReadLine();
Selamlar.