обмен файлами с 2 компьютеров. - PullRequest
0 голосов
/ 24 января 2012

Ну, у меня есть эта программа, опция загрузки работает нормально.Я могу получить доступ к другому компьютеру и загрузить файл с него на свой рабочий стол, но загрузка является проблемой.Когда я выбираю файл, программа пытается получить файл с другого компьютера, а не с моего, поэтому путь указан неверно.Могу ли я как-нибудь использовать JFileChooser (как я это делаю при загрузке) и указать имя или IP-адрес моего компьютера?До того, как я попробовал получить доступ к другому компьютеру, я заставил его работать с JFilChooser, но путь теперь испортил его.Некоторые советы или хитрости?

public void upload(String username) throws RemoteException, NullPointerException{

try {
            System.out.println(getProperty);
            String lol = "/hei/hei.txt";
            String ServerDirectory=("//" + "JOAKIM-PC"+ "/Users/Public/Server/"); 
            byte[] filedata = cf.downloadFile2(getProperty + lol);
            File file = new File(getProperty + lol); 
            BufferedOutputStream output = new BufferedOutputStream 
                    (new FileOutputStream(ServerDirectory + file.getName())); 
            output.write(filedata,0,filedata.length);
            output.flush();
            output.close();
        } catch(Exception e) {
            System.err.println("FileServer exception: "+ e.getMessage());
            e.printStackTrace();
        }
    }
    public void download(String username) throws RemoteException, NullPointerException{                           
        JFileChooser chooser = new JFileChooser("//" + "JOAKIM-PC" + "/Users/Joakim/Server/");
        chooser.setFileView(new FileView() {
            @Override
            public Boolean isTraversable(File f) {
                return (f.isDirectory() && f.getName().equals("Server")); 
            }
        });
        int returnVal = chooser.showOpenDialog(parent);
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            System.out.println("You chose to open this file: " + chooser.getSelectedFile().getName());
        } try {
            String fileName = chooser.getSelectedFile().getName();
            File selectedFile = chooser.getSelectedFile();
            String clientDirectory = getProperty + "/desktop/";
            byte[] filedata = cf.downloadFile(selectedFile); 
            System.out.println("Byte[] fildata: " + selectedFile);
            File file = new File(fileName);
            System.out.println("fileName: " + fileName);
            BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(clientDirectory + file.getName()));
            output.write(filedata, 0, filedata.length);
            output.flush();
            output.close();
        } catch (Exception e) {
            System.err.println("FileServer exception: " + e.getMessage());
            e.printStackTrace();
        }
    }

1 Ответ

1 голос
/ 24 января 2012

Если я правильно понял, вы хотите использовать на вашем upload методе этот код:

JFileChooser chooser = new JFileChooser("./hei/");
int returnval = chooser.showOpenDialog(this);
String ServerDirectory=("//" + "JOAKIM-PC"+ "/Users/Public/Server/"); 
if(returnval == JFileChooser.APPROVE_OPTION){
   File file = chooser.getSelectedFile();

   try{
           byte[] filedata = cf.downloadFile2(file.getAbsolutePath());  
           BufferedOutputStream output = new BufferedOutputStream 
                    (new FileOutputStream(ServerDirectory + file.getName())); 
            output.write(filedata,0,filedata.length);
            output.flush();
            output.close();

   }
   catch(Exception e){
      e.printStackTrace();
   }
}

Это вам подходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...