подключиться к IP-адресу true программа обмена файлами - PullRequest
0 голосов
/ 23 января 2012

У меня есть эта программа для обмена файлами, где я могу получить мои файлы из локального расположения. JFileChooser chooser = new JFileChooser ("C: // Users"), но я хочу получать файлы с сервера, используя IP-адрес.Я пытаюсь использовать String hostname = "192.168.1.1";но это не работает.Когда я открываю средство выбора файлов, я попадаю в свою собственную папку.некоторые советы?

public void download(String username) throws RemoteException, NullPointerException{                           
        JFileChooser chooser = new JFileChooser("//" + hostname + "/C://");
        chooser.setFileView(new FileView() {
            @Override
            public Boolean isTraversable(File f) {
                return (f.isDirectory() && f.getName().equals("C://")); 
            }
        });
        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 name = "//" + hostname + "/chatter";
            System.out.println(fileName);
            //ChatFront cf = (ChatFront) Naming.lookup(name);
            String ClientDirectory = getProperty + "/desktop/";
            byte[] filedata = cf.downloadFile(selectedFile);
            File file = new File(fileName);
            BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(ClientDirectory + file.getName()));
            output.write(filedata, 0, filedata.length);
            notifySelf(getUsername(), "You have now downloaded: " + file.getName() + " from the server");
            output.flush();
            output.close();
        } catch (Exception e) {
            System.err.println("FileServer exception: " + e.getMessage());
            e.printStackTrace();
        }
    }

Заранее спасибо:)

1 Ответ

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

Вы используете "//" + hostname + "/C://" в качестве пути для JFileChooser.Это неверный путь.Если вы пытаетесь получить доступ к файлам в общей папке в локальной сети, путь для этого выглядит следующим образом: \\hostname\sharename.

Даже если на удаленной машине не определены общие папки, это может быть «административный»share "диска C: C$, чтобы вы могли использовать \\hostname\C$.Но вы должны аутентифицироваться как действительный пользователь в этой системе, чтобы иметь разрешение на доступ к общему ресурсу.(Я не уверен, как это будет работать при попытке доступа к пути из Java-программы - в Windows может появиться окно входа в систему для удаленной системы или просто может произойти сбой.)

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