Предполагая, что ваши каталоги находятся в файловой системе NTFS, вы можете использовать NTFS, как указано здесь , или собственный системный вызов из Mono, как указано здесь .Хитрость заключается в том, что код в каждом AppDomain должен быть запущен как его собственный пользователь.
Я думаю, было бы проще заблокировать родительский каталог, используя любую систему разрешений, поддерживаемую вашей файловой системой, такчто пользователи не могут вручную удалить эти файлы, но пользователь приложения может создать и прочитать их, а затем убедиться, что логика программы не позволяет домену AppDomain наступать на файлы других пользователей.
Если вы просто ищете синхронизацию(это означает, что вы не хотите, чтобы несколько потоков обращались к одним и тем же файлам одновременно), вы можете просто использовать центральный реестр (таблицу базы данных или другое транзакционное хранилище) для отслеживания того, кто и во что пишет.