O File.Move não herda permissões do diretório de destino?

Caso algo dê errado na criação de um arquivo, escrevi em um arquivo temporário e depois fui para o destino. Algo como:

        var destination = @"C:\foo\bar.txt";
        var tempFile = Path.GetTempFileName();
        using (var stream = File.OpenWrite(tempFile))
        {
            // write to file here here
        }

        string backupFile = null;
        try
        {
            var dir = Path.GetDirectoryName(destination);
            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
                Util.SetPermissions(dir);
            }

            if (File.Exists(destination))
            {
                backupFile = Path.Combine(Path.GetTempPath(), new Guid().ToString());
                File.Move(destination, backupFile);
            }

            File.Move(tempFile, destination);

            if (backupFile != null)
            {
                File.Delete(backupFile);
            }
        }
        catch(IOException)
        {
            if(backupFile != null && !File.Exists(destination) && File.Exists(backupFile))
            {
                File.Move(backupFile, destination);
            }
        }

O problema é que o novo "bar.txt" nesse caso não herda permissões do diretório "C: \ foo". No entanto, se eu criar um arquivo via explorer / notepad etc diretamente no "C: \ foo", não haverá problemas, então acredito que as permissões estejam definidas corretamente em "C: \ foo".

Atualizar

EncontradoPermissões herdadas não são atualizadas automaticamente quando você move pastas, talvez se aplique também aos arquivos. Agora, procurando uma maneira de forçar uma atualização de permissões de arquivo. Existe uma maneira melhor geral de fazer isso?

questionAnswers(1)

yourAnswerToTheQuestion