Рабочий C #Пример :Запись и чтение альтернативного потока данных NTFS в 64-разрядной версии Win7

Я хотел бы иметь возможность использовать альтернативный поток данных для хранения некоторой информации синхронизации для файлов, на которые ссылается приложение базы данных, которое я создаю.

Тем не менее, все подходы, которые я нашел в сети, так или иначе потерпели неудачу. Не имея опыта программирования Win32 API, я не уверен, почему происходят сбои. В некоторых случаях вызовы методов выполняются успешно, только альтернативный поток не создается (, т. е. я не могу позже прочитать из альтернативного файла, и программа AlternateStreamViewer не может его увидеть ). В других случаях запись завершается успешно, но чтение завершается ошибкой, так как вызов CreateFile ()приводит к недопустимому SafeFileHandle.

На данный момент я просто хотел бы найти работающий код. Или быть предупрежденным, что «я не могу добраться туда отсюда». В таком случае я воспользуюсь другим,менее привлекательный вариант (, например, закодировать информацию синхронизации/ссылки в самом имени файла и надеяться, что никто никогда не изменит имя файла ).


Я понимаю просьбу о том, какие подходы я испробовал. Но было довольно много (Я потратил часы на это ), и мне было очень интересно узнать о предложениях, которые я еще не пробовал.

Тем не менее, вы правы в том, что это помогло бы, поскольку оказалось, что я использовал один из подходов --Trinet, упомянутый ниже --, неправильно. Я думаю, проблема была в том, что я еще не создал «базовый» файл, для которого пытался сохранить альтернативный поток.

Вот ссылки на кодовые базы, которые я пробовал:

7
задан Robert Harvey 7 May 2012 в 15:13
поделиться