Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [java] problema file con path unix e windows

    Ciao ragazzi

    devo copiare dei file che si trovano in una cartella windows in una cartella che sta su un pc unix

    il problema sembra banale però non riesco a risolverlo, ovvero quando istanzio i File mi vengono cambiate le path da "/" a "\" e questo non dovrebbe succedere, infatti poi il metodo per la copia di file "copyFile" mi da un errore filenotfoundexception

    dove sbaglio?

    codice:
    String src = "C:/Documents and Settings/Administrator/"
    String dest= "/mnt/cartella
    File input = new File(src);  // facendo debug input ha le path diverse
    File output = new File(dest);
    copyFile(input, output);

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    normale perché in pratica viene risolto il path assoluto secondo la logica del sistema su cui esegui, che è indipendete da quella di destinazione/sorgente

    ti appoggi a librerie esterne?
    RTFM Read That F*** Manual!!!

  3. #3
    beh io eseguo su windows ma deve copiare su unix

    come posso evitare che mi cambia la path in automatico ???

    no per leggere i file uso le librerie di java

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326

    Re: [java] problema file con path unix e windows

    Originariamente inviato da ubuntuunixc
    codice:
    String src = "C:/Documents and Settings/Administrator/"
    String dest= "/mnt/cartella
    Il primo è un path di Windows. Funzionerà se e solo se la JVM che esegue il tuo programma gira sotto Windows.

    Il secondo è un path Unix/Linux. Funzionerà se e solo se la JVM che esegue il tuo programma gira sotto Unix/Linux.

    Capirai che le due cose sono un po' in contraddizione tra di loro.

    Se sei su una macchina Windows, dovrai avere un'unità disco che mappa una cartella remota per accedere ad una cartella di un altro server con un altro sistema oeprativo.

    Se sei su una macchina Unix/Linux dovrai avere un path sul quale è montata la cartella remota.

    L'alternativa è quella di usare nomi UNC ( //nomeserver/percorso/condiviso ).

    Così come l'hai messa tu non può funzionare per le ragioni esposte sopra.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    l'idea che mi viene è

    1) riconoscere il sistema operativo su cui gira l'applicazione
    2) montare il disco se linux o windows
    3) passare i file

    per l'1) System.getProperty("os.name")

    per il 2) ???

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    non te ne frega niente di capire dove sei perché non è dove sei il problema, ma è dove devi andare!!!
    Usato le librerie apache commons.io?!?

    in ogni caso suppongo che debba impostare un mini-ftp
    RTFM Read That F*** Manual!!!

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    O usare un file di configurazione?
    Qualcosa del tipo (per Linux):

    codice:
    dir-source = /directory/dove/si/trova/il/file
    dir-dest = /mnt/di/destinazione/
    Che, per Windows, avrà questa faccia:
    codice:
    dir-source = C:/dove/si/trova/il/file
    dir-dest = X:/
    Ovviamente, se sei su Linux dovrai accertarti di aver montato il disco di destinazione, se sei su Windows dovrai accertarti di aver mappato l'unità disco esterna.

    Per quanto riguarda la destinazione, poi, come ho detto prima si può anche usare un percorso UNC (se la destinazione si trova su macchina Windows è sufficiente che sia una cartella condivisa, se si trova su macchina Linux è sufficiente usare samba).

    Il programma dovrà solo leggere il file e usare i percorsi che trova.

    Fine.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.