精华内容
下载资源
问答
  • android访问ftp服务器

    2012-12-24 16:44:57
    android访问ftp服务器,可以浏览本地sd卡文件夹FileExplorerActivity和MyFileListView用来浏览本地sd卡,MainActivity FtpUtilLoadAndUpLoad用来访问服务器,
  • 基于android开发的访问FTP服务器的客户端,已近解决兼容android4.0的问题
  • Android 访问FTP服务器,实现文件的下载,一个简单的Demo,下面是一些简单的代码片。如果对FTP不太了解的话,最好先去简单的了解哈 在测试的过程中,总是与服务器的连接容易断开,要考虑下与服务器保持长连接,多...

    Android 访问FTP服务器,实现文件的下载,一个简单的Demo,下面是一些简单的代码片。如果对FTP不太了解的话,最好先去简单的了解哈
    在测试的过程中,总是与服务器的连接容易断开,要考虑下与服务器保持长连接,多个文件同时下载时,线程问题,注意与服务器的连接、文件的下载需要在子线程中完成,不然会报错,后续还需完善。
    首先需要导入jar包:(下载连接)http://download.csdn.net/download/glc_csdn/10020971,内含API文档。
    需要的一些权限:

      <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
        <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    1.创建 FTPClient对象:

    FTPClient client = new FTPClient();

    2.连接FTP服务器:

    client.connect("host", port);//host:服务器IP地址 port:端口
    //  username: 账号 password: 密码
    client.login("username", "password");  
    // 如果不需要账号、密码的话,默认是username是"anonymous"
    /** 获取所有文件的名称**/
    /*String[] file = client.listNames();
    for (int i = 0; i < file.length; i++) {
        Log.i("file", file[i]);
     }*/

    3.下载文件:

    //创建文件的存储位置
      String dir = Environment.getExternalStorageDirectory()
                               + "/Images/";  
            File fileDir = new File(dir);
            if (!fileDir.exists()) {
               fileDir.mkdirs();
            }
            String path = dir + "fileName.jpg";//下载下来的文件名
            final File nfile = new File(path);
            if (nfile .exists()) {
               nfile .delete();
               Log.i("delete", "file deleted");
             }
    // "/Z/fileName.jpg" 服务器文件目录,"nfile " 本地存储位置
    //new MyTransferListener() 下载监听接口FTPDataTransferListener
    client.download("/Z/fileName.jpg",nfile ,new MyTransferListener());

    这是示例代码:

    public class MyTransferListener implements FTPDataTransferListener {
    
        public void started() {
            // Transfer started
        }
    
        public void transferred(int length) {
            // Yet other length bytes has been transferred since the last time this
            // method was called
        }
    
        public void completed() {
            // Transfer completed
        }
    
        public void aborted() {
            // Transfer aborted
        }
    
        public void failed() {
            // Transfer failed
        }
    
    }

    这只是一个简单的连接FTP服务器,下载操作,还有很多需要完善,查看API慢慢完善你的功能,终会实现你想要的

    展开全文
  • 一个简单的代码,基本功能都已实现,可以根据自己需求修改。
  • 用Unity做的Android应用,基于C#的FTP文件传输Demo。工程可直接打包APK安装在两个安卓设备上,一个作为服务端,另一个作为接收端。已测试。如有疑问,请留言
  • android ftp服务器实现

    2021-05-26 11:53:03
    通过ApacheFtpServer实现,依赖以下jar包:commons-net-ftp-2.0.jarftpserver-core-1.0.6.jarlog4j-1.2.14.jarmina-core-2.0.4.jarslf4j-api-1.5.2.jarslf4j-log4j12-1.5.2.jar资源下载地址 ...

    通过ApacheFtpServer实现,依赖以下jar包:

    commons-net-ftp-2.0.jar

    ftpserver-core-1.0.6.jar

    log4j-1.2.14.jar

    mina-core-2.0.4.jar

    slf4j-api-1.5.2.jar

    slf4j-log4j12-1.5.2.jar

    资源下载地址 http://download.csdn.net/detail/smile3670/8508525

    代码片段

    private static final int PORT = 2222;

    // sd卡目录

    @SuppressLint("SdCardPath")

    private static final String dirname = "/mnt/sdcard/ftp";

    // ftp服务器配置文件路径

    private static final String filename = dirname + "/users.properties";

    private FtpServer mFtpServer = null;

    /**

    * 开启FTP服务器

    * @param hostip 本机ip

    */

    private void startFtpServer(String hostip) {

    FtpServerFactory serverFactory = new FtpServerFactory();

    PropertiesUserManagerFactory userManagerFactory = new PropertiesUserManagerFactory();

    File files = new File(filename);

    //设置配置文件

    userManagerFactory.setFile(files);

    serverFactory.setUserManager(userManagerFactory.createUserManager());

    // 设置监听IP和端口号

    ListenerFactory factory = new ListenerFactory();

    factory.setPort(PORT);

    factory.setServerAddress(hostip);

    // replace the default listener

    serverFactory.addListener("default", factory.createListener());

    // start the server

    mFtpServer = serverFactory.createServer();

    try {

    mFtpServer.start();

    Log.d(TAG, "开启了FTP服务器 ip = " + hostip);

    } catch (FtpException e) {

    System.out.println(e);

    }

    } 开启服务前需在文件路径里添加配置文件users.properties  /mnt/sdcard/ftp # ls files users.properties /mnt/sdcard/ftp # cat users.properties  ftpserver.user.admin.userpassword=21232F297A57A5A743894A0E4A801FC3  ftpserver.user.admin.homedirectory=/mnt/sdcard/ftp/  ftpserver.user.admin.enableflag=true  ftpserver.user.admin.writepermission=true  ftpserver.user.admin.maxloginnumber=0  ftpserver.user.admin.maxloginperip=0  ftpserver.user.admin.idletime=0  ftpserver.user.admin.uploadrate=0  ftpserver.user.admin.downloadrate=0  ftpserver.user.anonymous.userpassword=anonymous  ftpserver.user.anonymous.homedirectory=/mnt/sdcard/ftp/  ftpserver.user.anonymous.enableflag=true  ftpserver.user.anonymous.writepermission=false  ftpserver.user.anonymous.maxloginnumber=20  ftpserver.user.anonymous.maxloginperip=2  ftpserver.user.anonymous.idletime=300  ftpserver.user.anonymous.uploadrate=480000  ftpserver.user.anonymous.downloadrate=480000 配置修改可参考 http://blog.csdn.net/zzh87615/article/details/6274461 demon下载地址http://download.csdn.net/detail/smile3670/8508939

    展开全文
  • 为了实现手机与计算机之间的文件传输,我们应保证手机和计算机在同一局域网中,因此我们让计算机与手机连接到同一WIFI中,我们下载了猎豹WIIF,用电脑...(1)我们先在计算机上安装好FTP服务器,可以去官网进行服...

    为了实现手机与计算机之间的文件传输,我们应保证手机和计算机在同一局域网中,因此我们让计算机与手机连接到同一WIFI中,我们下载了猎豹WIIF,用电脑开启WIFI后,将手机接入WIFI,这样就保证了手机与计算机在同一局域网内,连接成功后如下图所示。为了确认是否在同一局域网内,我们可以ping手机的IP地址,显示是可以ping通的。

    这里写图片描述
    这里写图片描述

    (1)我们先在计算机上安装好FTP服务器,可以去官网进行服务器软件的下载。点击右边的选项可以进行FTP服务器软件的下载。

    这里写图片描述

    (2)在主机上打开服务器软件,点开菜单栏中的Edit选项卡中的General,设置好账户名和密码,在Shared folders选项卡中设置好共享文件夹,以及文件的使用权限,同时点击Set as home dir选项。点击OK保存

    这里写图片描述
    这里写图片描述

    (3)接下来我们在安卓手机上下载FTP客户端,本次我们选用的FTP客户端APP是“FTP精灵”。可以在APP商店搜索进行下载:

    这里写图片描述

    (4)在手机上打开FTP客户端,进入APP后点击左上角的加号,添加服务器。分别输入服务器的名称(可自由填写),服务器的IP地址(计算机在局域网中的IP地址,这个很关键因为计算机此时有两个IP地址,分别是在以太网中的IP地址和在无线局域网中的IP地址,我们要填写在无线局域网中的IP地址 ),用户名和密码(写在FTP服务器中设置好的用户名和密码),端口号(写21),类型(选择FTP Explicit TLS),编码为(Automatic),传输模式(为Passive)。之后点击连接,便可出现第二幅图所示的界面,便可对计算机上的文件进行下载了。

    这里写图片描述
    这里写图片描述

    展开全文
  • AndroidFTP连接

    千次阅读 2014-12-03 15:18:08
    今天给大家分享下,怎样建立属于我们自己的FTP服务器以及FPT客户端,同时  非常非常感谢这些开源软件及其作者为IT行业做出的贡献,最大程度上至少解放了我们这些IT码农。且看正文。  本文主要内容:

    最近一段时间,因为公司项目的需要,对HTTP协议以及FTP协议都有所了解,并且在基于网络开放源代码

      基础上,能够完成项目的要求。今天给大家分享下,怎样建立属于我们自己的FTP服务器以及FPT客户端,同时

      非常非常感谢这些开源软件及其作者为IT行业做出的贡献,最大程度上至少解放了我们这些IT码农。且看正文。


           本文主要内容:

                    1、FTP服务端部署---- 基于Android中SwiFTP开源软件介绍;

                    2、FTP客户端部署 --- 基于ftp4j开源jar包的客户端开发 ;

                    3、使用步骤 --- 如何测试我们搭建的FTP可操作性。

     

           本文所涉及到的知识、文档、源代码照旧会在文章末尾列出。欢迎大家一起学习。

     


    一、 FTP服务端部署


              SwiFTP开源软件是为Android系统开发,也就是说我们可以将其源代码嵌入到我们的项目中。当然,对其进行

      一定改造还是必不可少的。这儿只是从感官上对SwiFTP的运行效果图进行一下说面,以便帮助大家有初步认识:

             SwiFTP 资料信息:

                            Google Download 介绍 : http://code.google.com/p/swiftp/downloads/list

                                          GitHub 介绍 :        https://github.com/ppareit/swiftp

                     


                                                                                            

                                                                    Android版本SwiFTP截图                                           

     

             界面其实很简单,但是从设计角度分析,SwiFTP框架系统还是值得我们研究的,当然如果你想改造成

      属于自己的FTP服务器(一般就是改改用户名、密码、PWD(起始工作目录))等,那更得花时间去钻研了。 

     


     二、 FTP客户端部署

        接下来,重点介绍我们的主角ftp4j开源jar包,该jar包就是开发我们FTP客户端核心了。

           ftp4j官网地址:http://www.sauronsoftware.it/projects/ftp4j/。对比与AndroidSDK而言,也就是ftp4j

       SDK了,一切的一切(文档、源代码、示例)都可以在官网查询 。想要了解的同学,至少得保证把首页给整明白吧。

     

      1、ftp4j概要

          官网描述如下:

               The ftp4j libraryimplementsa Java full-features FTP client. With ftp4j embedded in  your 

        application you  can :  FTP site (directory listing included), create, delete, transfer files

       (upload and download) , browse the remote FTP site (directory listing included), create, delete,

       rename and move remote directories and files.

     

       关于FTP连接主要有如下几种方式:

           The ftp4j library can connect the remote FTP server:

                   · Througha direct TCP/IPconnection.        一般就是直接连接了。

                   · Througha FTP proxy.                                    FTP代理

                   · Tunnelling through a HTTPproxy.                 HTTP代理

                   ·  Througha SOCKS 4/4aproxy.                    

                   · Througha SOCKS 5 proxy.

                   ·  You can add support to otherproxies plugging your own connector, since the ftp4jconnection manager

                  architecture is modular.

     

     2、主要类简介

          下面根据官网的描述,将该ftp4j库的主要类简单说明下:


       FTPClient类

               该类封装了对FTPCommand的请求操作。例如:连接FTP服务器、进行各种各样的FTP操作(上传、下载、

         删除、重命名文件  等)。基本使用流程图如下:

                                                         

              利用伪代码描述如下:

    [java]  view plain copy print ?
    1. //1、登录至FTPp服务器  
    2. mFTPClient.connect(mFTPHost, mFTPPort);  
    3. //2、请求授权  
    4. mFTPClient.login(mFTPUser, mFTPPassword);  
    5. //3、各种FTP操作  
    6. mFTPClient.upload();  
    7. mFTPClient.download();  
    8. //4、断开FTP连接  
    9. mFTPClient.disconnect();  
                       

         主要方法:

        public java.lang.String [] connect(java.lang.String host,    int port)   throws java.lang.IllegalStateException,

                                               java.io.IOException ,   FTPIllegalReplyException ,   FTPException

            功能:与FTP服务器主机建立连接 .

            参数 :

                  host -   FTP服务器的主机名(host name) 或者 ip地址

                  port -   FTP服务器的监听端口

           返回值 : The server welcome message ,FTP服务器响应消息

           抛出异常类型 :   (略,参见后文)

     

      public void login(java.lang.String username , java.lang.String password)   

                                             throws    java.lang.IllegalStateException,

                                                            java.io.IOException,  FTPIllegalReplyException,   FTPException

           功能:根据用户名以及密码登录FTP服务器

           参数:

                 username – 登录FTP服务器的用户名.

                 password - 登录FTP服务器的 密码

           返回值:(无)

           抛出异常类型  : (略,参见后文)

     

       public java.lang.String currentDirectory()    throws java.lang.IllegalStateException,   java.io.IOException,

                                                           FTPIllegalReplyException,    FTPException

           功能 :获取FTP服务器当前工作目录。

           返回值:FTP服务器当前工作目录

           抛出异常类型 : (略,参见后文)

     

      public long fileSize(java.lang.String path)

           功能:获取指定文件的大小。

           参数:

                path -- 指定文件所在的路径,可以是相对路径或者是绝对路径。

           返回值 : 指定文件的大小,单位为byte.

           抛出异常类型 :   (略,参见后文)

     

      public void deleteFile(java.lang.String path)  throws  java.lang.IllegalStateException,    java.io.IOException,

                                                             FTPIllegalReplyException,   FTPException

          功能:删除指定文件

          参数:

               path -- 指定文件所在的路径,可以使相对路径或者是绝对路径。

          返回值:(无)

          抛出异常类型 :   (略,参见后文)

     

       public void deleteDirectory(java.lang.String path)   throws java.lang.IllegalStateException,  

                                                             java.io.IOException,  FTPIllegalReplyException,   FTPException

          功能: 删除指定文件夹

          参数: 

              path -- 指定文件所在的路径,可以使相对路径或者是绝对路径。

          返回值:(无)

          抛出异常类型 :  (略,参见后文)

     

       public  FTPFile[] list()     throws java.lang.IllegalStateException ,  java.io.IOException,

          功能: 获取当前工作目录所有文件信息:文件名、文件大小、文件类型(文件或者文件夹)。

          返回值: FTPFile[]数组对象 ---- 该文件夹所对应的信息

          抛出异常类型 : (略,参见后文)


       public java.lang.String[] listNames()

          功能: 获取当前工作目录的所有文件名。

          返回值:String[]类型 ----- 所有文件名

          抛出异常类型 : (略,参见后文)


      public void upload(java.io.File file ,  FTPDataTransferListener listener)  throws java.lang.IllegalStateException,

                          java.io.FileNotFoundException,   java.io.IOException,    FTPIllegalReplyException,   FTPException,

                          FTPDataTransferException,  FTPAbortedException

     

          功能 :上传文件至FTP服务器。该操作会阻塞当前线程,阻塞会在操作完成后解除该方法可以通过调用

       abortCurrentDataTransfer()方法去中断。默认上传的文件目录是当前工作目录,通过currentDirectory()方法

       可以获得。注意:不支持上传文件夹。

         参数:file  -- 上传文件的File对象

                  listener -- 监听器 (稍后介绍)

         抛出异常类型 : (略,参见后文)

     

      public void download(java.lang.String remoteFileName,    java.io.File localFile, 

                    FTPDataTransferListener listener)

                                           throws java.lang.IllegalStateException,  java.io.FileNotFoundException,

                                                        java.io.IOException,   FTPIllegalReplyException,   FTPException,

                                                        FTPDataTransferException,  FTPAbortedException

           功能:下载某个文件值指定路径。该操作会阻塞当前线程,阻塞会在操作完成后解除。该方法可以通过调用

       abortCurrentDataTransfer()方法去中断。注意:不支持下载文件夹。

           参数:

                remoteFileName -  相对路径(相对于当前目录)时则是文件名或者绝对路径(例如:Linux中以”\”为前缀)

                localFile -  本地存放文件的File对象。

                listener -  监听器 (稍后介绍)

           抛出异常类型 : (略,参见后文)


       public void abortCurrentDataTransfer(boolean sendAborCommand)  throws java.io.IOException,  

                                                        FTPIllegalReplyException

          功能:如果存在任何正在进行的文件操作(上传/下载),该方法会中断它

          参数

             sendAborCommand --  true则代表中断文件操作,并且发送ABORT 命令给FTP服务器

                                              false 代表关闭中断文件操作,将不会发送任何消息给FTP服务器。

           抛出异常类型 : (略,参见后文)

     

      FTPFile 类

                  该类封装了FTP服务器中文件的信息,即Model类。

     

         常量字段:   

                                                                                       文件对应类型

                public static final intTYPE_FILE                         文件

                public static final intTYPE_DIRECTORY            文件夹

                public static final intTYPE_LINK                       文件引用

     

        主要方法:

               public java.util.Date getModifiedDate()     获取文件最后修改日期。

               public int getType()                                  获取文件类型。

               public long getSize()                                 获取文件大小  ,单位为byte。

     

      FTPDataTransferListener   Interface 

            该接口约定了文件传输过程中的回调方法类型。我们可以实现该类去监听每个具体的文件操作过程。

      回调接口有:

               void started()            回调方法,表示已开始文件传输。

               void completed()        回调方法,表示文件传输已完成。

                void aborted()           回调方法,表示文件传输已被中断,可由abortCurrentDataTransfer()触发。

                void failed()              回调方法,表示文件传输由于某种错误而失败。

                void transferred(int length)  回调方法,表示本次回调过程中已下载/上传的文件字节大小。

                   参数:  length --本次回调过程中下载/上传的文件字节大小。

                   PS :我们可以累积length大小,以便获得当前文件已传输的字节数。

     

     异常种类:

                ftp4j的自定义共有如下几种,基本上每个FTP操作,都伴随着这些异常,因此,我们需要捕获这些异常信息。

     

       FTPAbortedException

             当文件传输过程被显示中断(例如,调用abortCurrentDataTransfer()方法)时,抛出该异常。

       FTPDataTransferException

             在文件传输过程中,发生任何I/O(例如,无法创建文件流)错误,都会抛出该异常。

       FTPException

             封装了FTP错误码以及错误消息的异常类。PS:类似于HTTP错误码以及错误消息

              常用方法:

                public int getCode()                    获取异常发生时,FTP的错误码(错误码字段值具体可见FTPCodes类)

                public java.lang.String getMessage()  获取异常发生时,FTP的错误消息。


       FTPIllegalReplyException

                 当FTP服务器以一种非正常的方式---违反了FTP协议的规则响应时,抛出该异常。

       FTPListParseException

                 通过list()方法请求FTP服务时,如果此时FTP服务器的返回的消息不能被正确的解析时,都会抛出该异常。



           通过对这些相关知识的学习,足矣利用ftp4j jar包完成我们简易却又充实的专属我们自己的FTP客户端了。

       接下来,便开始我们的FTP客户端的开发

     

       3、FTP客户端开发

           在功能需求上,开发一个FTP客户端和开发一个文件选择器甚至文件管理器基本上没有任何区别,唯一的区别

      只在于数据来源不同,这个不同会导致功能实践上更多细节的差异,例如:异常的捕获、断点尝试等。代码方面

      我就不再赘述了,对前面所介绍类的掌握和理解,应该No Problem了。主要说一下两点:

             ①、由于Android4.0不允许在主线程上进行网络操作,例如:Socket编程,我们的操作必须放在新的线程中。

        同时为了减少创建线程的开销,我们试用了线程池去执行每一个FTP操作。

             ②、试用FTPClient时,不允许上传/下载文件夹,我也没有针对这一方面进行更多的开发(具体实现过程大致

        为:对文件夹里的每个文件皆进行上传/下载操作),有兴趣的同学可以看看这篇帖子<基于ftp4j的FTP客户端工具>,

       会提升对你对ftp4j的使用认知的。

     

          我们的FTP客户端主要功能为:

              ①、显示特定目录列表;

              ②、删除文件以及文件夹,下载文件;

              ③、上传文件。

     

         主要代码如下:

    [java]  view plain copy print ?
    1. /** 
    2.  *  
    3.  * @author jun.qin 
    4.  * {@link} http://blog.csdn.net/qinjuning 
    5.  * 
    6.  */  
    7. public class FtpMainActivity extends Activity implements OnClickListener {  
    8.   
    9.     private static String TAG = CopyOfFtpMainActivity.class.getName();  
    10.   
    11.     private CmdFactory mCmdFactory;  
    12.     private FTPClient mFTPClient;  
    13.     private ExecutorService mThreadPool;  
    14.       
    15.     @Override  
    16.     protected void onDestroy() {  
    17.         mDameonRunning = false ;  
    18.         Thread thread = new Thread(mCmdFactory.createCmdDisConnect()) ;  
    19.         thread.start();  
    20.         //等待连接中断  
    21.         try {  
    22.             thread.join(2000);  
    23.         } catch (InterruptedException e) {  
    24.             // TODO Auto-generated catch block  
    25.             e.printStackTrace();  
    26.         }  
    27.         mThreadPool.shutdownNow();  
    28.         super.onDestroy();  
    29.     }  
    30.     //put线程池中执行  
    31.     private void executeConnectRequest() {  
    32.         mThreadPool.execute(mCmdFactory.createCmdConnect());  
    33.     }  
    34.   
    35.     private void executeDisConnectRequest() {  
    36.         mThreadPool.execute(mCmdFactory.createCmdDisConnect());  
    37.     }  
    38.   
    39.     private void executePWDRequest() {  
    40.         mThreadPool.execute(mCmdFactory.createCmdPWD());  
    41.     }  
    42.   
    43.     private void executeLISTRequest() {  
    44.         mThreadPool.execute(mCmdFactory.createCmdLIST());  
    45.     }  
    46.     //创建FtpCmd的工厂类  
    47.     public class CmdFactory {  
    48.   
    49.         public FtpCmd createCmdConnect() {  
    50.             return new CmdConnect();  
    51.         }  
    52.   
    53.         public FtpCmd createCmdDisConnect() {  
    54.             return new CmdDisConnect();  
    55.         }  
    56.   
    57.     }  
    58.     //继承了Runnable接口  
    59.     public abstract class FtpCmd implements Runnable {  
    60.   
    61.         public abstract void run();  
    62.   
    63.     }  
    64.     //连接命令  
    65.     public class CmdConnect extends FtpCmd {  
    66.         @Override  
    67.         public void run() {  
    68.             boolean errorAndRetry = false ;  //根据不同的异常类型,是否重新捕获  
    69.             try {  
    70.                 String[] welcome = mFTPClient.connect(mFTPHost, mFTPPort);  
    71.                 if (welcome != null) {  
    72.                     for (String value : welcome) {  
    73.                         logv("connect " + value);  
    74.                     }  
    75.                 }  
    76.                 mFTPClient.login(mFTPUser, mFTPPassword);  
    77.                 mHandler.sendEmptyMessage(MSG_CMD_CONNECT_OK);  
    78.             }catch (IllegalStateException illegalEx) {  
    79.                 illegalEx.printStackTrace();  
    80.                 errorAndRetry = true ;  
    81.             }catch (IOException ex) {  
    82.                 ex.printStackTrace();  
    83.                 errorAndRetry = true ;  
    84.             }catch (FTPIllegalReplyException e) {  
    85.                 e.printStackTrace();  
    86.             }catch (FTPException e) {  
    87.                 e.printStackTrace();  
    88.                 errorAndRetry = true ;  
    89.             }  
    90.             if(errorAndRetry && mDameonRunning){  
    91.                 mHandler.sendEmptyMessageDelayed(MSG_CMD_CONNECT_FAILED, 2000);  
    92.             }  
    93.         }  
    94.     }  
    95.   
    96.     public class CmdDisConnect extends FtpCmd {  
    97.   
    98.         @Override  
    99.         public void run() {  
    100.             if (mFTPClient != null) {  
    101.                 try {  
    102.                     mFTPClient.disconnect(true);  
    103.                 } catch (Exception ex) {  
    104.                     ex.printStackTrace();  
    105.                 }  
    106.             }  
    107.         }  
    108.     }  
    109.     //下载命令  
    110.     public class CmdDownLoad extends AsyncTask<Void, Integer, Boolean> {  
    111.   
    112.         @Override  
    113.         protected Boolean doInBackground(Void... params) {  
    114.             try {  
    115.                 String localPath = getParentRootPath() + File.separator  
    116.                         + mFileList.get(mSelectedPosistion).getName();  
    117.                 mFTPClient.download(  
    118.                         mFileList.get(mSelectedPosistion).getName(),  
    119.                         new File(localPath),  
    120.                         new DownloadFTPDataTransferListener(mFileList.get(  
    121.                                 mSelectedPosistion).getSize()));  
    122.             } catch (Exception ex) {  
    123.                 ex.printStackTrace();  
    124.                 return false;  
    125.             }  
    126.   
    127.             return true;  
    128.         }  
    129.   
    130.         protected void onPostExecute(Boolean result) {  
    131.             toast(result ? "下载成功" : "下载失败");  
    132.             progressDialog.dismiss();  
    133.         }  
    134.     }  
    135. }  


    三,使用方法说明

          前提条件, 确保两台手机分别安装FTP服务端,FTP客户端 ,并且能连接上WIFI网络。

       

        第一步:运行FTP服务器SwiFtp,输入基本信息(端口、用户名、密码),同时确保FTP服务器成功开启 。如图:

                                                               

                             配置FTP服务器信息                                                                                       FTP服务器状态


        第二步:运行FTP客户端,填写FTP验证时的资料(即第一步输入信息)后,连接FTP服务器即可。如图:


                                                                                                


    转自:http://blog.csdn.net/qinjuning/article/details/8545601

    源码下载地址:http://download.csdn.net/detail/qinjuning/5034873


    展开全文
  • 电脑访问手机空间,管理手机文件目录。 android 安卓 FTP 文件 管理
  • ftp搭建并实现http访问

    2018-09-22 09:23:07
    使用ftpserver和tomcat完成ftp服务器搭建,并实现在web项目中直接使用http请求访问资源。内置详细操作文档和所需资源,环境为Win7 64位。
  • 首先,在准备连接FTP服务器的小伙伴们得清楚一件事:就是FTP服务器到底能进行什么操作?首先得搞清楚这个。 *移动端* 1、FTP服务器仅支持上传下载、对文件夹的相关操作,不支持直接查看。 2、若要连接FTP服务器直...
  • android 开源库上传FTP

    2016-07-24 10:48:50
    开源库的包名是这个org.apache.commons.net.ftp.FTPClient;是属于局域网的ftp上传,要有ip、端口、用户名以及密码。我根据网上的下载demo,自已研究了一番,又封装了一个类自已使用。欢迎访问博客:...
  • 安卓FTP 上传出现异常

    2021-06-03 11:49:50
    1 public String ftpUpload(String url, intport, String username,String password, String remotePath, String fileNamePath,String fileName) {2 FTPClient ftpClient = newFTPClient();3 File...
  • ios系统访问ftp服务器

    2021-08-13 02:37:34
    ios系统访问ftp服务器 内容精选换一换本文介绍使用云手机服务时需要了解的基本概念。云手机是一台包含原生安卓操作系统,具有虚拟手机功能的云服务器,简单来说,云手机=云服务器+Android OS。您可以远程实时控制云...
  • Android FTP服务器

    2021-06-04 00:36:40
    我使用以下code使android设备成为ftp服务器(Android内部存储).我得到了os.android.NetworkOnMainThread的例外.我试图将onStart代码放在AsyncTask中,但app永远不会执行并在启动时崩溃.关于Android上的ftp服务器的任何...
  • Android使用FtpServer开启FTP服务端

    千次阅读 热门讨论 2018-04-25 17:41:56
    使用之前需要先下载jar包,可以在官网下载或者从下文附带的DEMO源码中拿 在AndroidManifest.xml中声明权限 &lt;uses-permission android:name="...android.permission.READ_EXTE...
  • 浏览器如何访问FTP目录

    千次阅读 2021-04-07 09:41:22
    1.在浏览器输入ftp://127.0.0.1,(IP地址要修改为FTP服务器的IP地址) 2.在弹出框中输入ftp用户密码及可访问
  • AndroidFTP服务器代码

    热门讨论 2013-10-29 23:27:54
    本应用是基于开源项目SwiFTP的一款轻量级FTP服务器,如果想了解更多,欢迎访问我的博客主页:http://blog.csdn.net/way_ping_li ,由于时间仓促,错误与疏忽之处在所难免,希望各位朋友们以邮件的形式反馈问题给我,再次...
  • 安卓ftp服务器让电脑访问文件

    千次阅读 2014-12-18 10:02:16
    androidftp服务器,电脑无线访问文件 当然这类软件应该很多吧,搜一搜就有 找源码却不是那么简单 我见过一些手机,比如华为啊,小米啊,他们在文件管理器上面就实现了这个,自带那种 网上找了图 ...
  • 呵呵,google 官方并没有给出 ftp 相关的 sdk 虽然 webview 在 guide 上面说自己支持 ftp,但是并不能无障碍的访问 ftp 服务器不过 Apache 提供了一个叫做 commons.net 的 jar 包导入到工程里面就能用,ftp 只是其中...
  • 通过手机访问计算机FTP服务器

    万次阅读 2018-06-14 21:13:05
    通过手机访问计算机FTP服务器 点开手机设置–WLAN–点击连的WiFi名,查看手机的IP地址。 手机IP地址为:192.168.1.106 如图所示: 在电脑上ping手机的IP地址,如图所示: 从图中可以看出,可以ping通。 在...
  • 一、概述  打开你的手机,找到文件管理->分类->远程管理,点击启动服务,这样大家可以在局域网内使用电脑访问你手机上的文件了,当然你...3.启动我们的ftp服务 一、首先就是在sd卡中创建我们的配置文件,这里我创建在s
  • 如题,在windows电脑中通过FineFTP搭建了一个FTP服务器,在安卓手机/设备中运行FTP客户端,然后连接windows上的FTP服务器,结果无法连接。通过Wireshark抓包发现,客户端发送的FTP命令和返回的响应如下所示: ...
  • Android设备FTP服务器搭建 目 录 1 前言… 1.1设计背景… 1.2搭建方案简述… 2 搭建服务器流程… 2.1创建新项目… 2.2添加相应jar包… 2.3添加相应依赖… 2.4获取设备IP… 2.5开启FTP服务器… 2.6关闭FTP服务器… 3 ...
  • 1.前言在开发中,会遇到向FTP服务器上传文件的需求,首先要导入commons-net-3.3.jar 然后利用api进行相关操作,具体功能如下:Ftp相关代码import android.util.Log;import org.apache.commons.net.ftp.FTP;import org...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,328
精华内容 4,531
关键字:

安卓访问ftp