new File macht den Pfad kaputt

Status
Nicht offen für weitere Antworten.

Exceptionist

Aktives Mitglied
Huhu leutz, ich hab mal wieder ien problem, was vielen hier evtl sogar trivial erscheinen mag.
bei der sufu hier hab ich nich wirklich gefunden was mich weiterbringen würde..

also mein problem ist folgendes:
ich hab für nen bekannten nen linkchanger geschrieben
(in php funzt des ding soweit, aber ich dachte ne java-app wär etwas sinnvoller)
und der eingegebene link wird auch richtig konvertiert,
wenn ich also dahergehe und die eingabe ändere fruchtet des mit copy und paste die file zu öffnen.

wenn ich aber auf den open-button klicke bekomm ich ne illegalArgumentException.
hab mein test-system-out auch mal dazugeschrieben-
da wir klar, dass new File(convLink) meinen String kapott macht :|

jemand von euch ne idee wo der käse rollt?
nachfolgend mal die exception, der code der Converter.class und der LinkWin.class
run:
hier: file://///TADAA/Eigene Bilder/aua/ATT1656043.jpg
file:\TADAA\Eigene Bilder\aua\ATT1656043.jpg

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: The file: file:\TADAA\Eigene Bilder\aua\ATT1656043.jpg doesn't exist.
at java.awt.Desktop.checkFileValidation(Desktop.java:191)
at java.awt.Desktop.open(Desktop.java:252)
at linkchanger.LinkWin.btn_openActionPerformed(LinkWin.java:133)
at linkchanger.LinkWin.access$100(LinkWin.java:25)
at linkchanger.LinkWin$2.actionPerformed(LinkWin.java:76)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package linkchanger;

/**
 *
 * @author Exceptionist
 */
public class Converter {

    private String ressourceLink = null;
    private String prefix = null;
    
    public Converter(){
    }
    public String convertLink(String rLink, String linkType){
        this.ressourceLink = rLink;
        if(linkType.toLowerCase().equals("smb")){
            this.prefix ="smb:";
        }else{
            this.prefix="file:///";
        }
        rLink = rLink.replaceAll("\\\\", "/");
        String cRes = prefix+rLink;
        return cRes;
    }
}

Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * LinkWin.java
 *
 * Created on 09.11.2009, 20:06:41
 */
package linkchanger;

import java.awt.Color;
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
 *
 * @author Exceptionist
 */
public class LinkWin extends javax.swing.JFrame {

    Converter conv = new Converter();
    String convLink = null;
    String inputLink = "";
    boolean converted = false;
    String type = ""; //leerinitialisierung damit bei fehlender auswahl auf jeden fall der file-link genommen wird

    /** Creates new form LinkWin */
    public LinkWin() {
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        buttonGroup1 = new javax.swing.ButtonGroup();
        btn_convert = new javax.swing.JButton();
        jTextField1 = new javax.swing.JTextField();
        radio_file = new javax.swing.JRadioButton();
        radio_smb = new javax.swing.JRadioButton();
        btn_open = new javax.swing.JButton();
        lbl_ausgabe = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setResizable(false);

        btn_convert.setText("Convert Link");
        btn_convert.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn_convertActionPerformed(evt);
            }
        });

        jTextField1.setText("\\\\TADAA\\Eigene Bilder\\aua\\ATT1656043.jpg");

        buttonGroup1.add(radio_file);
        radio_file.setText("File");

        buttonGroup1.add(radio_smb);
        radio_smb.setText("SMB");

        btn_open.setText("Open Link");
        btn_open.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btn_openActionPerformed(evt);
            }
        });

        lbl_ausgabe.setText(" ");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(radio_smb)
                            .addComponent(radio_file))
                        .addGap(45, 45, 45)
                        .addComponent(lbl_ausgabe, javax.swing.GroupLayout.DEFAULT_SIZE, 321, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(btn_open, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(btn_convert, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                    .addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 514, Short.MAX_VALUE))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(21, 21, 21)
                .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(lbl_ausgabe)
                            .addComponent(radio_file))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(radio_smb))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(btn_convert)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(btn_open)))
                .addContainerGap(17, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>

    private void btn_openActionPerformed(java.awt.event.ActionEvent evt) {                                         
        if(!converted){
            this.evaluate();
        }
        System.out.println("hier: " + convLink);
        File myfile = new File(convLink);
        System.out.println(myfile);
        try {
            Desktop.getDesktop().open(myfile);
        } catch (IOException ex) {
            JOptionPane.showMessageDialog(null, "Details: " + ex.toString(), "Es ist ein Fehler aufgetreten", JOptionPane.OK_OPTION);
            Logger.getLogger(LinkWin.class.getName()).log(Level.SEVERE, null, ex);

        }

    }                                        

    private void btn_convertActionPerformed(java.awt.event.ActionEvent evt) {                                            
        this.evaluate();

    }                                           
    private void evaluate() {
        inputLink = jTextField1.getText();
        if (radio_smb.isSelected()) {
            type = "smb";
        }
        if (radio_file.isSelected()) {
            type = "file";
        }
        if (!radio_file.isSelected() && !radio_smb.isSelected()) {
            lbl_ausgabe.setText("Kein Typ ausgewählt! Typ: FILE wird übernommen");
            lbl_ausgabe.setForeground(Color.red);
            radio_file.setSelected(true);
        }
        convLink = conv.convertLink(inputLink, type);
        jTextField1.setText(convLink);
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                LinkWin win = new LinkWin();
                win.setTitle("Ressource-Link-Converter");
                win.setLocation(100, 100);
                win.setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    private javax.swing.JButton btn_convert;
    private javax.swing.JButton btn_open;
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JLabel lbl_ausgabe;
    private javax.swing.JRadioButton radio_file;
    private javax.swing.JRadioButton radio_smb;
    // End of variables declaration
}
 

Exceptionist

Aktives Mitglied
nee an dem liegt es auch net, hab jetzt mal nen anderen pfad probiert
\\TADAA\Users\Public\ATT1656043.jpg

und dennoch haut mir des new File den eigentlich richtig konvertierten link kaputt.

richtig: file://///TADAA/Users/Public/ATT1656043.jpg
nach new File();
falsch: file:\TADAA\Users\Public\ATT1656043.jpg
 
M

MiDniGG

Gast
Nur ne Vermutung... Aber mach mal aus dem:
Java:
this.prefix="file:///";
das:
Java:
this.prefix="file:\\\\";
 

Michael...

Top Contributor
Warum so viel Code für die eine Sache???
Probier mal einfach mal was bei sowas rauskommt bzw. spiele damit ein bisschen rum
Java:
File file = new File(new URI("file://///TADAA/Users/Public/ATT1656043.jpg"));
Erst versuchen, den Fehler/ das Problem im kleinen zu lösen und dann langsam ausweiten.
 

Exceptionist

Aktives Mitglied
michael...
TOP, das wars!!
ich muss mich einfach mehr mit java beschäftigen.. die kleckerprogrammierung die ich so mache is fürn boppes -.-

aber tausend dank du hast die app gerettet^^ DANKÖÖÖ
 

Exceptionist

Aktives Mitglied
sry für doppelpost, dient zur kenntlichmachung neuer informationen.

es hat sich grad ein anderes problem aufgetan... oben wurd ja des schon mit dem leerzeichen im URI erwähnt...
ich hab des zu nem %20 konvertiert und kann den konvertierten link im explorer öffnen und im browser aber net über die anwendung selber..
da bekomm ich jedes mal ne IOException weil des dingden pfad net findet (obwohl er stimmtund mit allem anderen gängigen gedöhnse zu öffnen ist)
bin auch schon anderen vorschlägen der fufu gefolgt, aber es hat nüx gebracht... :|
 

faetzminator

Gesperrter Benutzer
Wie wärs, wenn du intern jeweils einfach den "korrekten" Pfad speicherst und nur beim Ausgeben die " " durch "%20" ersetzt?
 

Exceptionist

Aktives Mitglied
ja wie komm ich denn von dem server-URI auf den richtigen lokalen pfad?
und was is dann wenn ich das "tool" im netzwerk betreibe? dann hab ich ja nur netzwerkpfade und auch da kanns zu leerzeichen kommen- sprich dann hab ich das problem so gesehen ja auch wieder
 
M

maki

Gast
Lies dich mal in URL, URI und den zusammenhang zu File ein ;)
URI bzw URL sollten das Leerzeichen autom. durch %20 ersetzen.
 

Exceptionist

Aktives Mitglied
so, also ich bin jetzt etwas schlauer, aber noch net vom problem befreit.
kannst du mal konkretisieren worauf du da hinaus willst?

und ersetzt wurd da irgendwie nix...
lass ich des händisch eingepflegte %20 weg bekomm ich ne uriSyntaxException und mit ne IOException
und weiß net wieso...
 
Zuletzt bearbeitet:

Exceptionist

Aktives Mitglied
das ja echt prima... hät j wenigstens gedacht, dass du noch auf meine letzte frage antwortest...
war wohl nen satz mit X
 
M

maki

Gast
URL hat eine Methode toURI, dabei sollten die Sonderzeichen im Pfad eigentlich escaped werden.
 

Exceptionist

Aktives Mitglied
ja ich hab doch die uri schon maskiert hinbekomment, auch wenns eben zu fuss gemacht war, aber dennoch kamen die oben genannten exceptions...


edit: habs jetzt auch explizit nochmal mit der toURI()-methode gemacht und ich bekomm denoch ne
URISyntaxException wegen illegaler characters at index 22 (was die leerzeile bei eigene dateien ist)
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
R File.pathSeparator und File.separator Java Basics - Anfänger-Themen 46
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
izoards Prunsrv - Windows Service - .bat file starten Java Basics - Anfänger-Themen 84
I File Uploader... Statusanzeige, Berechnung des Status etc. Java Basics - Anfänger-Themen 0
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
G jar file lässt sich nicht öffnen Java Basics - Anfänger-Themen 1
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
J File length als Prüfwert für Download Java Basics - Anfänger-Themen 5
berserkerdq2 Überprüfen ob eine Schreibberechtigung auf ein file exisitert bzw. ob man dieses file löschen kann, wie? Java Basics - Anfänger-Themen 9
berserkerdq2 IOstreams, was unterscheidet file von z. B. BufferedWriter? Java Basics - Anfänger-Themen 11
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
A java jar-File Java Basics - Anfänger-Themen 1
E Executable jar file fehler Java Basics - Anfänger-Themen 9
I Upload File zu einem Webservice Java Basics - Anfänger-Themen 17
I ZIP File erstellen Java Basics - Anfänger-Themen 10
LeoDerKek Textdatei in JAR-File Java Basics - Anfänger-Themen 4
Tom/S File Java Basics - Anfänger-Themen 10
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
A Checkstyle - File contains tab characters Java Basics - Anfänger-Themen 2
H Java file nicht gefunden Java Basics - Anfänger-Themen 5
C File speichern Java Basics - Anfänger-Themen 5
C Runnable Jar-File erzeugen Java Basics - Anfänger-Themen 14
C Pfad zu Properties-File bei ResourceBundle Java Basics - Anfänger-Themen 7
F GSON file mit einer List erstellen Java Basics - Anfänger-Themen 2
rafi072001 Lesen aus einem Excel File Java Basics - Anfänger-Themen 10
C Bild in executable JAR File mitgeben Java Basics - Anfänger-Themen 5
K File (png) in Image laden Java Basics - Anfänger-Themen 3
B Inputstream in file schreiben? Java Basics - Anfänger-Themen 23
S Input/Output Reader/Writer finden file nicht Java Basics - Anfänger-Themen 3
T Buffered Stream leert Txt File Java Basics - Anfänger-Themen 3
A 2d Arrays aus txt.file einlesen Java Basics - Anfänger-Themen 16
Dimax In Java File (nicht in Java Projekt) mysql Driver importieren Java Basics - Anfänger-Themen 3
K File wird in der .Jar nicht gefunden Java Basics - Anfänger-Themen 3
E TXT FILE EINLESEN Java Basics - Anfänger-Themen 4
Trèfle EXCEL-File Laufwerkunabhängig einbinden. Java Basics - Anfänger-Themen 1
B HTML File einlesen inkl. Bilder? Java Basics - Anfänger-Themen 2
B Hilfe bei InputStream To File Java Basics - Anfänger-Themen 22
topi relativer Pfad in einem Runnable JAR file Java Basics - Anfänger-Themen 12
A jar File kleiner bekommen Java Basics - Anfänger-Themen 3
B File öffnen in src/main/webapp Java Basics - Anfänger-Themen 4
K File-Name Vergleich Java Basics - Anfänger-Themen 2
krgewb Runnable JAR File Export Java Basics - Anfänger-Themen 11
S Maxium aus einer File finden Java Basics - Anfänger-Themen 12
dapzoo Class File Version zu niedrig? Ausführen über Eingabeaufforderung nicht möglich Java Basics - Anfänger-Themen 14
D Input/Output File exists canRead canWrite Java Basics - Anfänger-Themen 11
B cal4j - Error at line 1:Unexpected end of file Java Basics - Anfänger-Themen 0
P jar file lässt sich nicht ausführen Java Basics - Anfänger-Themen 4
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
M Erste Schritte CSV-File einlesen und Daten verarbeiten Java Basics - Anfänger-Themen 5
F File von Windowsfreigabe laden Java Basics - Anfänger-Themen 1
S java.nio.file.FileSystemException bei Dateizugriff vermeiden Java Basics - Anfänger-Themen 7
Vince42 NIO File Tree in XML umwandeln Java Basics - Anfänger-Themen 10
J Zweidimensionales Array in CSV File exportieren Java Basics - Anfänger-Themen 3
E War-File Problem mit Eclipse Java Basics - Anfänger-Themen 3
B Excel File einlesen und Überschrift prüfen Java Basics - Anfänger-Themen 8
M Email versenden Outlook, attached File, ohne Anmeldung Java Basics - Anfänger-Themen 4
M Input/Output Word File Kopieren Java Basics - Anfänger-Themen 12
K Runable Jar File erstellen Java Basics - Anfänger-Themen 17
T Java Executable jar file funktioniert nicht Java Basics - Anfänger-Themen 4
sourcecorn Werte aus einem File lesen Java Basics - Anfänger-Themen 6
Kopak'rraf Korruptes zip File. Java Basics - Anfänger-Themen 0
T File für Einstellungen wird nicht geladen Java Basics - Anfänger-Themen 1
S Sounddatei in Jar File integrieren Java Basics - Anfänger-Themen 2
S Index File bauen Java Basics - Anfänger-Themen 5
T Anzeige, wie lange es noch dauert bis ein File gesendet ist. Java Basics - Anfänger-Themen 2
T filereader , file aus programm einlesen Java Basics - Anfänger-Themen 12
Ghostman1711 Itext PDF print File gelockt by Java Java Basics - Anfänger-Themen 15
N Email mit Anhang - File not Found Java Basics - Anfänger-Themen 1
K Interface Kein Bild im .jar-File Java Basics - Anfänger-Themen 15
S Bild in Jar-File mit ImageIO Java Basics - Anfänger-Themen 50
Syncopated Pandemonium Compiler-Fehler The constructor MP3File(File) refers to the missing type NoMPEGFramesException Java Basics - Anfänger-Themen 7
S File mit canRead() testen Java Basics - Anfänger-Themen 4
A file.delete funktioniert nicht Java Basics - Anfänger-Themen 15
K Classpath Lesen von Property-File Java Basics - Anfänger-Themen 1
S jar file Java Basics - Anfänger-Themen 19
B Fragen zu ZIP-File Java Basics - Anfänger-Themen 9
B Dateityp von File bekommen Java Basics - Anfänger-Themen 2
I Automatisch Verzeichnis erstellen bei File erstellen Java Basics - Anfänger-Themen 5
E Große Datenmengen effizient in CSV File speichern Java Basics - Anfänger-Themen 4
I String zu File umwandeln Java Basics - Anfänger-Themen 2
N File virtuell ByteStream Java Basics - Anfänger-Themen 11
X Übergabeparameter Konstruktor (File) Java Basics - Anfänger-Themen 13
Anfänger2011 file.isDirectory() liefert falschen Wert!? Java Basics - Anfänger-Themen 1
ms_cikar Jar file mit resource erzuegen Java Basics - Anfänger-Themen 28
E lesen csv file column by column Java Basics - Anfänger-Themen 10
U Anhand von Ant ein War-File erstellen Java Basics - Anfänger-Themen 0
B Quellcode einelsen "line by line" (und abspeichern in file (txt) Java Basics - Anfänger-Themen 7
O Zip-File Inhalt einlesen Java Basics - Anfänger-Themen 3
V Erste Schritte Dateinamen aus einer FIle[] in eine List Java Basics - Anfänger-Themen 11
P Jar File Java Basics - Anfänger-Themen 3
B Probleme bei "Daten in CSV File schreiben". Java Basics - Anfänger-Themen 9
S CSV File - "Vergleichen und Sortieren" Java Basics - Anfänger-Themen 3
T Wieso kann ich das jar file nicht starten? Java Basics - Anfänger-Themen 5
S Resourcen-Dateien im Jar-File verfügbar machen (Intellij 14) Java Basics - Anfänger-Themen 14
A Wieso übergibt der nicht die bearbeitete txt file Java Basics - Anfänger-Themen 8
Ruvok Executable Jar File startet nicht Java Basics - Anfänger-Themen 3
R Ini File erstellen Java Basics - Anfänger-Themen 1
J file.lenght spinnt ab 50mb Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben