Criar um diretorio se não existir

Bom estou utilizando o itext para gerar um arquivo pdf

         String caminho = System.getProperty("user.home");
         PdfWriter.getInstance(document,new FileOutputStream(""+caminho+"\\Documents\\teste"));
         document.open();
         document.add(new Paragraph("teste"));
         document.close();

mas estou com dúvida como eu conseguiria criar o diretorio teste caso ele não existe
e também estou com um problema de acesso negado
como eu conseguiriar dar um chmod pra esse arquivo?

O problema do acesso negado deve ser porque o diretório não existe.
Para criar o diretório, use
new File( caminho+"\\Documents\\teste").mkdir()
ou
new File( caminho+"\\Documents\\teste").mkdirs()

if (!new File(caminho).exists()) {
            new File(caminho).mkdir();
        } else {
            System.out.println("Pasta caminho já existe ...");
        }

Para alterar permissões de arquivos, pode usar o utilitário do Windows chamado “cacls”. Muito embora o erro tenha se dados pois não existia a pasta, por isso sugeri vc fazer um if pra verificar se existe.

Digite “cacls /?” em um Prompt de Comando, e veja os parâmetros necessários, você pode usar Runtime.exec para chamar ele…

1 curtida

new FileOutputStream fica dando error no mkdir
pq o itext não aceita o new file.

Verifica o caminho antes do seu código. Caso o diretorio não exista você cria e então continua com seu código