Gå til innhold

Katalog navigering i java


Anbefalte innlegg

Skrevet

Hei, skal spille av lyd i java men får ikke til å finne fram til fila.

hvis jeg bruker

this.getClass().getResource(""); så kommer jeg til hovedpakka..

mappen med musikken ligger 2 kataloger under så skulle tro jeg kunne bruke ../../ inni getresource. ../ funker en gang og jeg kommer en katalog ned, men greier ikke å komme 2 ned. Tror det har noe med at java tolker stringen annerledes når jeg skriver ../../. Noen som har peiling? Kan jo bare legge musikk filene i samme mappe men skulle helst unngått dette.

 

På forhånd takk

 

Lars

Videoannonse
Annonse
Skrevet (endret)

try {
           System.out.println(ImageIO.read(getClass().getResource("New Folder/New Folder/New Folder/pic.jpg")));
       } catch (IOException e) {
           e.printStackTrace();
       }

 

En url er en url om den kun er relativ.... Dette går feks fint...

 

Kanskje du gjør en feil med "this.getClass", da blir det den klassen som blir root til den relative urlen..

Endret av HV
Skrevet
try {
           System.out.println(ImageIO.read(getClass().getResource("New Folder/New Folder/New Folder/pic.jpg")));
       } catch (IOException e) {
           e.printStackTrace();
       }

 

En url er en url om den kun er relativ.... Dette går feks fint...

 

Kanskje du gjør en feil med "this.getClass", da blir det den klassen som blir root til den relative urlen..

8302152[/snapback]

 

trenger å gå opp 2 nivåer, dvs. tilbake 2 kataloger. skriver jeg getclass().getresource("") kmr jeg til mappen jeg står i, men jeg vil 2 opp..

 

har prøvd getclass().getresource("../../") men får null tilbake fra det kallet..

 

Noen andre forslag?

Skrevet (endret)

Det jeg prøvde å si, du kan ikke gå høyere en root.. Siden du ikke virker som du har noen externe løsninger på å hente ressurser, så kan et alternativ være å bruke en annen klasse til å hente filene da. Kanskje oprette en nesten tom klasse som heter SoundResource som ligger i lyd mappen din eller høyere og deretter si fra der du vil:

 

 

try {
          System.out.println(ImageIO.read(SoundResource.class.getResource("New Folder/New Folder/New Folder/pic.jpg")));
      } catch (IOException e) {
          e.printStackTrace();
      }

Endret av HV
Skrevet (endret)

Forsøk deg på å skrive stien til lydfila som pakkenavnet og deretter filnavn. Dersom lydfila ligger i pakken com.mysite.myapp.resources og heter sound.wav så forsøk følgender:

 

URL url = this.getClass().getResource("/com/mysite/myapp/resources/sound.wav");

 

-/maskefjes

Endret av maskefjes
Skrevet

Takk for hjelpa, endte med vha eclipse at jeg oppretta en pakke på samme nivå som hovedpakka og la til nye filer der..Litt kronglete iom. eclipse ikke oppdaterer pakke innhold men bare mapper.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...