通过套接字编程访问远程目录

时间:2013-07-29 12:27:47

标签: java file sockets directory jtree

我尝试访问远程计算机目录(写入服务器和客户端部件)并放入JTree,因此我使用System.getProperty(“user.dir”)
File root=new File(System.getProperty("file.separator"));
FileTreeModel model = new FileTreeModel(root);
jTree1.setModel(model);

设置jTree1之后,我通过套接字连接发送它,但是我无法获取远程目录,它打印出自己的文件目录。我试图通过使用递归来获取树模型所有文件路径,无论它是否为文件。但是大约需要3分钟。我该如何解决这个问题?

接收部分代码是:

TreeServer = new ServerSocket(805);
TreeSocket = TreeServer.accept();
in = TreeSocket.getInputStream();
TreeObjectInput = new ObjectInputStream(in);
fileTree = (JTree) TreeObjectInput.readObject();
TreeObjectInput.close();
in.close();
TreeServer.close();

发送部分代码

Socket ConnectionSocket = new Socket(remoteIP,805); 
File root=new File(System.getProperty("file.separator"));
model = new FileTreeModel(root);
JTree2.setModel(root);
OutputStream os = ConnectionSocket.getOutputStream();  
ObjectOutputStream oos = new ObjectOutputStream(os);    
oos.writeObject(JTree2);  
oos.close();  
os.close();

1 个答案:

答案 0 :(得分:0)

您不能在客户端使用java的File API,它总是本地的。您必须实现自己的javax.swing.tree.TreeModel访问服务器端,而服务器端又可以使用File API来访问服务器的本地文件。