1

Apache FTP サーバーを Android アプリに統合する作業を行っています。http://mina.apache.org/ftpserver-project/embedding_ftpserver.html
の手順に従ってください (5 分で FtpServer を埋め込む) 。

ただし、すべてのコードが含まれており、jar ファイルが私の Android プロジェクトにインポートされているため、2 つの主要なエラーが発生しました。

関連するすべての問題を調査してすべての方法を試しましたが、解決策は、(5 分で FtpServer を埋め込む) 手順に記載されている jar ファイルの最小限のサブセットを保持し、コードをコンパイルすることです。jar ファイルはそれほど多くないので、最小限のサブセットを取得するためにいくつかの試行錯誤を行いました。

その後、いくつかの新しいコードを使用して ftp サーバーを開始します (ここにリンクがあります): Java ftp サーバーの作成

しかし、user.properties ファイルが見つからないため、接続できませんでした。ftpserver-1.0.6-src ソース コードをダウンロードし、user.properties ファイルを Android SD カードに入れて、ftp を開始します。最初に user.properties ファイルを assets フォルダーに配置し、コードを使用してそれを sdcard にコピーします。

今、すべてがうまくいくようです。ただし、ユーザー名とパスワードが以下を使用して設定されているため、匿名ログインを使用できません。 BaseUser user = new BaseUser(); user.setName("テスト"); user.setPassword("テスト");

設定しないと、コードはコンパイルされません。
匿名ユーザーとしてログインすることは、私がしなければならない最後の部分です。もう1つの些細なことは、Androidサーバーにftpすると、許可エラーが返されないため、ファイルをダウンロードできないことです。

どんな提案でも大歓迎です。ありがとうございました

4

1 に答える 1

0

私は同じ問題を抱えていたので、カスタムの新しい users.properties ファイルを作成しました。ここにコードがあります:

    File files=new File(filepath + "/users.properties");  
    if (!files.exists()) {
          try {
              files.createNewFile();
          } catch (IOException e) {
             Log.e(TAG, "Errore nella creazione del file di log", e);
              e.printStackTrace();
          }
    }
    userManagerFactory.setFile(files);  
    userManagerFactory.setPasswordEncryptor(new SaltedPasswordEncryptor());
    UserManager um = userManagerFactory.createUserManager();
    BaseUser user = new BaseUser();
    user.setName("xxx");
    user.setPassword("yyy");
    user.setHomeDirectory("/mnt/sdcard");

    List<Authority> auths = new ArrayList<Authority>();
    Authority auth = new WritePermission();
    auths.add(auth);
    user.setAuthorities(auths);

    try {
        um.save(user);
    } catch (FtpException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
于 2014-05-09T10:25:53.803 に答える