У меня есть консольное приложение, которое использует FileSystemWatcher для просмотра папки, которая запускает событие при удалении файла / папки.
Мой упрощенный код:
using System;
using System.Configuration;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
namespace FileWatcherConsole
{
class Program
{
static void Main(string[] args)
{
Program program = new Program();
FileSystemWatcher watcher = new FileSystemWatcher
{
Path = "\\Server1",
IncludeSubdirectories = true,
EnableRaisingEvents = true,
NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName,
Filter = "*.*"
};
watcher.Deleted += new FileSystemEventHandler(program.OnDeleted);
new AutoResetEvent(false).WaitOne();
}
private void OnDeleted(object sender, FileSystemEventArgs e)
{
Console.WriteLine(e.FullPath);
}
}
}
Приложение работает, как и ожидалось, за исключением просмотра общей сетевой папки, где вывод
\\Server1\SharedFolder
Однако вместо этого я хотел бы указать физический путь к папке:
C:\Users\myUser\Desktop\SharedFolder
ТакЕсть ли способ программно преобразовать сетевой путь в физический путь?
Я знаю, что одним из решений является использование физического пути при создании экземпляра FileSystemWatcher, однако это не идеальный вариант, поскольку физическое расположение папки общего сетевого ресурса может измениться.
PS Если вы считаете необходимым обоснованиедля этого мне нужен физический путь, так как я сравниваю путь события [e.FullPath] с событиями аудита системы