A minha app copia alguns arquivos para uma pasta que eu escolher…
vamos supor…
os arquivos estão nesse dir itens/(qualquer nome)
eu nao quero pegar os arquivos de dentro, alias, eu quero… só que antes eu tenho q saber quantos e quais sao eles… pra fazer o for pra copiar…
ate aí tudo bem, meu codigo funciona quando eu rodo no netbeans… quando eu gero o .jar ele nao funciona…
o caminho que eu passo pro File é “src/itens/” só que esse src só existe quando meu projeto está no “netbeansprojects”… ao gerar o jar essa pasta srs some
A classe File permite que você instancie um objeto indicando um diretório.
Quando eu preciso pegar o diretório onde o jar se encontra, apenas crio o objeto desta forma?
File f = new File(".");
Assim, independente de onde esteja o jar, você consegue identificar o diretório onde o mesmo se encontra.
Como o drsmachado disse pega o diretorio atual do seu jar e depois pega o teu jar e usa o ZipFile para ler…Só não sei se será possivel mais é uma idéia…
olha… para você adicionar arquivos dentro de um arquivo .jar você precisa das classes do pacote java.zip… no outro tópico que você criou relativo a mesma coisa, você não disse que queria inserir arquivos neste diretório, isso eu nunca fiz, eu ja até li arquivos dentro do jar mas nunca escrevi estes arquivos… para ler você pode usar o getResourceAsStream ao invés do método getResource.
se o seu problema é esse, ler além de escrever, ai acho que a melhor forma é o seu diretório ser externo sim (você não pode alterar nada no arquivo jar enquanto ele estiver sendo executado). Se o diretório em questão for diferente entre uma máquina e outra, deixe o endereço em questão dentro de um arquivo interno, um de extensão .properties por exemplo, leia este properties para pegar o endereço do diretório e trabalhe com o endereço em questão… não é uma solução perfeita por que exige que a cada máquina que o endereço seja diferente você abra o arquivo .jar, o .properties dentro dele e altere o endereço, mas é a melhor solução que eu consegui pensar agora…
eu nao quero inserir nem alterar nada… eu só quero localizar um “D-I-R-E-T-O-R-I-O” e listar os arquivos q estao nele…
e depois copia-los…
eu SEI usar getResource pra arquivos… ja disse N vezes…
eu preciso de algo q me retorne os diretorios, nao arquivos…
entao, eu paro de “duplicar topicos” quando postarem coisas relativas com a minha duvida… ja postaram muitas vezes a mesma resposta pra lidar com arquivos e eu ja disse q nao é arquivo… entao se nao souber como me ajudar tudo bem
mas se alguem souber como achar DIRETORIOS eu ficarei grata!
Quanto mais clara for tua pergunta e, quanto mais informações você passar sobre tua dificuldade, mais simples e direto será para encontrar respostas.
Há sim, muitas respostas parecidas e que não atendem à tua necessidade.
Cada um que respondeu, dentro do objetivo do fórum, está tentando ajudar, então, por gentileza, não precisa tratar com grosseria, ok?
Duplicar tópicos não ajuda muito, geralmente são os mesmos que irão ler e, eventualmente, responder às questões.
Se você quer listar os diretórios de um determinado local, bem, primeiro pegue o array de arquivos do mesmo e, fazendo um if simples, verifique se ele é ou não um diretório (utilizando o método isDirectory() ou mesmo o isFile()).
eu ja fiz esse tipo de coisa… e nao me retorna nada…
e eu tentei nao ser grossa… mas é q alguns tentam ajudar… outros parecem q querem responder a mesma coisa… duplicar respostas pode?
a coisa é… eu joguei um monte de arquivo dentro do meu projeto… e quando eu rodo ele… quero copiar esses arquivos pra uma pasta do meu desktop…
explicando de uma maneira simples…
eu poderia copiar arquivo por arquivo… usando isso q vcs todos ja me disseram… mas se eu adicionar um arquivo… ja ferrou, pq meu codigo ta hardcoded…
por isso quero pegar o dir… listar os arquivos, e dai sim num for copia-los…
tudo isso eu ja procurei… procurei no guj, em outros lugares, ate em ingles… e nao encontrei nada referente a diretorios, somente arquivos…
se isso nao puder ser feito, eu faço hard coded… mas se tiver como eu gostaria de saber…
Com esse codigo perceba que procuro somente a pasta plugins…
Bom o restante é facil e tu sabes…
[color=red] OBS:[/color] Importante lembrar que isso somente funcionara se voce tiver rodando apartir do jar, se não recebera o FileNotFoundException por o jar nao ter sido criado.
E caso deseja observar o System.out.println() chame o jar pelo Prompt de Comando do Windows (cmd) com esse comando: java -jar nomedoJar.jar