当前位置: 代码迷 >> Java相关 >> [求助]请教有关FTP客户端的编程问题,多谢
  详细解决方案

[求助]请教有关FTP客户端的编程问题,多谢

热度:227   发布时间:2006-05-25 20:50:00.0
[求助]请教有关FTP客户端的编程问题,多谢


本人正在做毕业设计,是用JAVA编写FTP客户端程序,期间遇到了以下问题难以解决,还请各位前辈指点迷精:
首先是客户端显示远端目录时中文名的显示是乱码,不知道如何是好.

第二,我是用Jtree控件来显示本地目录的,在下载文件的程序中要根据在Jtree里选中的本地目录来创建一个File实例,用到的方法是File(String pathname).问题在于pathname的格式要求用双斜线\\,即D:\\Programe Files\\abc这种形式,Jtree类中的getSelectionPath()方法得到的路径形式是[D:\,Programe Files,abc],请问如何编个方法来实现将这种目录形式转换成双斜线形式.(也就是下面程序中conPath()方法要实现的功能)(急!!!)

最后就是文件的下载问题了,从服务器下载的文件只有个文件名在那里,大小全都是
0KB,真是很郁闷,程序如下,还请各位前辈指教啊.(很急!!!)

void jButton4_actionPerformed(ActionEvent e) {
 //下载ftp文件到本地目录
 if(jTree1.isSelectionEmpty()){
  //如果没有选择目录和文件提示用户
  jTextArea1.append("没有选择本地目录用于下载!!\n");
 }else{
  File file1=new File(conPath());
  if(file1.isFile()){
   //如果是文件也要提示用户选择的是文件
   jTextArea1.append("没有选择本地目录用于下     载"+jTree1.getSelectionPath().getLastPathComponent().toString()+"\n");
   jTextArea1.append("而选择的是文件:"+conPath()+"\n");
  }else{
   //下载文件到指定的目录里
   jTextArea1.append("选择的下载本地目录"+jTree1.getSelectionPath().getLastPathComponent().toString()+"\n");
   jTextArea1.append("目录:"+conPath()+"\n");
   //可以选择多个文件和目录
   String [] filenames=list1.getSelectedItems();
   for(int i=0;i<filenames.length;i++){
    String filename=filenames[i];
    boolean isfile=false;
    try {
     //判断是否为目录,如果是目录则在本地创建一个目录
     ftp.cd(filename);
     ftp.cdUp();
     File localDir = new File(conPath()+"\\"+filename) ;
     localDir.mkdir();
    }
    catch (IOException ex) {
     isfile=true;
    }
    if(isfile){
     //对文件的处理,即下载文件到本地硬盘中(但下载的文件大小都是0 KB,不知道问题出在哪里)
     int ch;
     try{
      File localFile = new File(conPath()+"\\"+filename) ;
      RandomAccessFile getFile = new RandomAccessFile((conPath()+"\\"+filename),"rw");
      getFile.seek(0);
      TelnetInputStream ins = ftp.get(filename);
      DataInputStream Inputs = new DataInputStream(ins);
      //下载处理......
      while ((ch = Inputs.read()) >= 0) {
       getFile.write(ch);
      }
      //处理完成,关闭输入输出流
      ins.close();
      getFile.close();
     }
     catch (IOException ex) {
      ex.printStackTrace();
     }
    }
   }
  }
 }
}

搜索更多相关的解决方案: FTP  客户  

----------------解决方案--------------------------------------------------------
这贴子怎么没人回答呢?
帮忙顶上来.
----------------解决方案--------------------------------------------------------
  相关解决方案