Supondo que você esteja falando sobre o Windows ...
A melhor maneira lógica e direta de fazer isso, eu acho, é se você definir as permissões na pasta (e você terá que usar o botão Avançado dentro da guia Segurança nas Propriedades da pasta) para Permitir a pasta transversal / Executar arquivo, permitir criar arquivos / gravar dados e permitir criar pastas / acrescentar dados.
Infelizmente, a pasta de lista / leitura de dados é uma permissão única para que você não possa dividir isso no nível de permissão do Windows. Os usuários poderão gravar e anexar arquivos e pastas, mas não listar as pastas ou ler os arquivos (ou excluí-los).
No entanto, um bom trabalho seria em vez de projetar seu aplicativo para testar a existência de arquivos, testar a existência de pastas e colocar cada arquivo a ser protegido em sua própria pasta. Se você remover as permissões List Folder / Read Data das pastas dentro de uma pasta principal, poderá negar permissão ao seu aplicativo para abrir os arquivos dentro dessas subpastas, mas permitir que eles vejam a existência das subpastas.