我正在使用FTP客户端。
我已经创建了一个基于此的FTP客户端:Android How to upload a file via FTP 有了这段代码。可以将带有包含字符串的txt-File发送到我的FTP服务器。
我的本地文件夹“/ sdcard / ftp /”
中有图片现在我正在尝试更改代码,文件夹中的所有jpg文件都可能由ftp客户端发送。
package de.android.datenuebertragung;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPConnectionClosedException;
import org.apache.commons.net.ftp.FTPFile;
import android.app.Activity;
import android.util.Log;
public class FTPManager extends Activity{
FTPClient con = new FTPClient();{
try
{
con.connect("host");
if (con.login("user", "password"))
{
// in application never use hardcoded paths
File folder = new File("/sdcard/ftp/");
File tempFile = null;
FTPFile[] tempFTPFile = null;
//get all files in folder
for(String fileInDir : folder.list()){
tempFile = new File(fileInDir);
tempFTPFile = con.listNames(tempFile.getFiles);
if(tempFTPFile!=null || tempFTPFile.length<=0){
con.upload(fileInDir);
}
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
try
{
con.logout();
con.disconnect();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
我在这些标记的单词中有两个错误(getFiles和upload):
con.listNames(tempFile.getFiles)中的错误是:getFiles无法解析或不是字段
和con.upload(fileInDir)中的另一个错误是:方法upload(String)未定义类型FTPClient
我已经尝试了一整天来解决这个问题。希望可以有人帮帮我。也许发布改变和工作的代码。我是Android编程中的绝对新手。
答案 0 :(得分:0)
如果您直接粘贴了代码并且没有拼写错误,那么此行中应该是getFiles()
而不是getFiles
...
tempFTPFile = con.listNames(tempFile.getFiles);
另外,我怀疑默认传输模式是ASCII(这通常适用于任何FTP客户端软件)。
尝试拨打电话......
con.setFileType(FTP.BINARY_FILE_TYPE);
...在尝试上传之前。