[java]Files tellen in een directory

Pagina: 1
Acties:
  • 104 views sinds 30-01-2008
  • Reageer

  • Boondock_Saint
  • Registratie: Januari 2001
  • Laatst online: 18-11-2023
Ik heb een slideshowapplet gemaakt die foto's uit een map haalt en ze afbeeld om de x seconden. De index moet als de laatste foto is geweest weer terugspringen naar 1. Omdat er verschillende dirs zijn met verschillende aantallen afbeeldingen, moet de applet zelf kijken hoeveel bestanden er in een dir staan, dus:

code:
1
2
3
gallery = getParameter("dir");
File dir = new File("../pictures/" + gallery); 
maxIndex = dir.list().length + 1;


Daarbij krijg ik de volgende exception:

java.security.AccessControlException: access denied(java.io.FilePermission ..\pictures\2les_menuirs read)

at java.security.AccessControlContext.checkPermission(Unkown Source)
at java.security.AccessController.checkPermission(Unkown Source)
at java.lang.SecurityManager.checkPermission(Unkown Source)
at java.lang.SecurityManager.checkRead(Unkown Source)
at java.io.File.list(Unkown Source)
at SlideShow.init(SlideShow.java:43)
at sun.applet.AplletPanel.run(Unkown Source)
at java.lang.Thread.run(Unkown Source)


Regel 43 is overigens regel 3 in bovenstaande code ( maxIndex = ~)

Ik heb op de search gezocht en daarbij vond ik 1 topic wat het zou kunnen zijn maar daar kon ik niet in, of die was er niet meer (page not found).

Misschien is het anders een optie om het aantal files ook als parameter door te geven aan de applet, ik weet alleen niet of je dat met PHP danwel Javascript kan doen.

O ja, ik draai als webserver Apache onder win XP en de hele site/applet staat in m'n public_html.

Blasphemy is a victimless crime


Verwijderd

Bij een applet moet je rechten (=permissions) hebben om op een map toe te grijpen. Deze rechte kan je met java.security instellen. Als je op de site van sun zoekt kom je vast wel nuttige dingen tegen om de permissions te krijgen om op bestanden toe te grijpen.
Succes! :)

  • Boondock_Saint
  • Registratie: Januari 2001
  • Laatst online: 18-11-2023
Verwijderd schreef op 01 november 2003 @ 14:36:
Bij een applet moet je rechten (=permissions) hebben om op een map toe te grijpen. Deze rechte kan je met java.security instellen. Als je op de site van sun zoekt kom je vast wel nuttige dingen tegen om de permissions te krijgen om op bestanden toe te grijpen.
Succes! :)
:) dank je.

Dit heeft me wel iets verder geholpen. Volgens mij moet ik een Permission object maken. Maar die heeft als constructor Permission(String name). Wat moet er dan in die string staan? De naam die ik er aan geef of de naam die het systeem ervoor wil hebben? En hoe koppel ik dat object dan aan de actie dir/ls en aan de applet? Als dat object in de applet staat heeft de applet dan automatisch die rechten?

Goed, sorry jongens, beetje veel vragen. M'n bezoekje aan de API heeft me wel met m'n neus in de goede richting gezet maar ik kan er nog steeds geen chocola van maken.

Blasphemy is a victimless crime


  • Boondock_Saint
  • Registratie: Januari 2001
  • Laatst online: 18-11-2023
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
     $maindir = "." ; 
     $mydir = opendir($maindir) ; 
    $exclude = array( "index.php") ; 
    
    while($fn = readdir($mydir)) {

         if ($fn == $exclude[0] || $fn == $exclude[1]) 
              continue; 

        echo "<br><a href='$fn'>$fn</a>"; 
    } 
   
    closedir($mydir);


Doe het gewoon zo en dan als param meegeven aan applet.

Blasphemy is a victimless crime


  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 15:47
Ga eens op zoek naar
Java Applet Signing / jar signing (http://java.sun.com/docs/...ial/jar/sign/signing.html)

Dan wordt de user toestemming gevraagd en vervolgens mag je alles :)


Wat je tevens kan doen is met de policytool Permissions toe kennen aan bepaalde code-bases.

[ Voor 17% gewijzigd door Jelmer op 02-11-2003 12:43 ]