Newsgroup: it.comp.java
Titolo: URGENTE : Lettura File da APPLET

Ho la necessita di controllare tramite un applet se sul pc dove quest'ultima
è in esecuzione sia presente un file o meno (forse successivamente dovrò
leggerlo).
Il file è sempre lo stesso e si trova sempre ne CD-Rom. So che le applet non
possono leggere file in locale, ma se non sbaglio, tramite la firma
dell'applet posso passare questa limitazione, Sapreste dirmi di più o darmi
qualche esempio ?
Grazie a tutti
--------------------------------
Inviato via 
http://usenet.libero.it

 Grazie a tutti
Dunque fammi capire... l'applet stessa viene eseguita dal CD rom? 
Se č cosě non dovresti avere bisogno di permessi, ti basterebbe ricostruire
il path del file da aprire attraverso il getDocumentBase(). Le applet 
dovrebbero infatti poter leggere dal file system da cui vengono 
"prelevate".
pole
-- 
Note: Some input words use a deprecated author.
Note: Read with -deprecation to understand.

NO, purtroppo l'applet risiede su un server qualunque e la lettura del file
(che si trova sul CD-Rom) avviene in locale sul client.
Ho trovato un esempio, ma funziona soltanto su Netscape (qualche
suggerimento ?):
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import netscape.security.*;
public class FileAccess extends Applet implements ActionListener {
  Button loadButton, saveButton;
  TextField filename;
  TextArea contenuto;
  String browserName;
  Label label;
  boolean securitySupported = false;
  public void init() {
    setLayout(new FlowLayout());
    label = new Label("Prova Lettura e Scrittura File");
    add(label);
    loadButton = new Button("Carica");
    saveButton = new Button("Salva");
    add(loadButton);
    add(saveButton);
    loadButton.addActionListener(this);
    saveButton.addActionListener(this);
    filename = new TextField(20);
    add(filename);
    contenuto = new TextArea(5,20);
    add(contenuto);
    browserName = System.getProperty("java.vendor");
    //if (browserName.indexOf("Netscape") > -1)
       securitySupported = true;
    setSize(200, 200);
    }
  public void actionPerformed(ActionEvent evt) {
    label.setText("Premuto Leggi");
    if (securitySupported) {
      label.setText("securitySupported OK");
       if (evt.getSource() == saveButton) {
          PrivilegeManager.enablePrivilege("UniversalFileAccess");
          try {
             FileWriter aWriter = new FileWriter(filename.getText(), false);
             aWriter.write(contenuto.getText());
             aWriter.flush();
             aWriter.close();
            }
          catch(Exception e) {
            e.printStackTrace();
            }
          }
       else if (evt.getSource() == loadButton) {
          PrivilegeManager.enablePrivilege("UniversalFileAccess");
          label.setText("Abbilitazione Privileggi");
          try {
             label.setText("Premuto Leggi");
             BufferedReader aReader =
                new BufferedReader
                   (new FileReader(filename.getText()));
             label.setText("Creato FileReader");
             contenuto.setText(aReader.readLine());
             label.setText("Letto file");
             aReader.close();
             label.setText("Chiuso FileReader");
            }
          catch(Exception e) {
            e.printStackTrace();
            }
       }
     else {
       getAppletContext().showStatus("security not installed");


 suggerimento ?):
mmh, io personalmente ho sempre evitato le applet firmate per vari motivi,
tra cui non ultimo una certa complessità di passaggi (ottenere un certficato 
etc.) e l'inevitabile "sfiducia" di chi quell'applet dovrà utilizzarla.
Per cui sul loro utilizzo lascio spazio a suggerimenti di altri.
Da parte mia, non conoscendo gli scopi di ciò che devi creare, mi chiedevo 
il motivo per cui debba essere l'applet a cercare il file e non possa 
essere direttamente il client a spedirglielo - basterebbe anche un file 
html con un form auto-postante messo sul cd-rom, o un piccolo applicativo 
(non applet) sul client. In questo caso il problema sarebbe risolto alla 
radice :-)


Il problema è che io devo utilizzare un Applet e non posso scegliere altro.
