Перенаправление записи в файл в поток C # - PullRequest
2 голосов
/ 24 августа 2009

Я хотел спросить, можно ли перенаправить записи в определенный файл в поток памяти в моем приложении, чтобы я мог сразу же прочитать его. Если это возможно, пожалуйста, объясните, как это сделать.

Спасибо.

Ответы [ 3 ]

4 голосов
/ 24 августа 2009

Убедитесь, что ваше приложение работает с Stream, и тогда вы можете использовать конкретную реализацию MemoryStream для выполнения потоковой передачи без файла.

2 голосов
/ 24 августа 2009

Вам нужен поток, который записывает как в файл, так и в другой поток, который вы смотрите, - разделитель потока, широко известный в мире Unix как tee.

Для .NET вы можете использовать эту реализацию потокового разветвителя. Передайте ему FileStream (чтобы файл был записан) и для второго потока передайте реализацию Stream, которая делает все, что вы хотите, когда записывается поток (например, подкласс MemoryStream с переопределено Write метод).

Обновление: Я вижу из вашего комментария, что мой ответ не тот, который вам нужен - я не понял из вашего исходного вопроса, что вы не контролировали запись приложения в файл.

Чтобы получить такой вид управления, для наилучшего управления вам нужно обратиться к низкоуровневому драйверу, который перехватывает системные вызовы - так же, как FileMon . Для немного меньшего контроля вы можете использовать System.IO.FileSystemWatcher .

0 голосов
/ 24 августа 2009

Я не знаю, как это сделать, как вы говорите, но вы можете использовать FileWatcher для перехвата файла. Если оно написано, вы получите уведомление и сможете его прочитать.

...