这是我的类(class)从ftp下载文件
public void run() {
FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect(server, port);
ftpClient.login(user, pass);
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
String remoteFile1 = "/WhiteList.txt";
File downloadFile1 = new File("/data/data/com.prosec/files/WhiteList.txt");
OutputStream outputStream1 = new BufferedOutputStream(new FileOutputStream(downloadFile1));
boolean success = ftpClient.retrieveFile(remoteFile1, outputStream1);
outputStream1.close();
在我的 MainAcitivy 中,我在打开我的应用程序 (OnCreate()) 时实例化了 ftp 类。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.btn);
btnDicas = (Button) findViewById(R.id.btnDicas);
out = (TextView) findViewById(R.id.out);
listView = (ListView) findViewById(R.id.list);
new Thread(new ReceiveFTP()).start();// HERE
我在这行有问题
OutputStream outputStream1 = new BufferedOutputStream(new FileOutputStream(downloadFile1));
日志:
03-12 09:06:37.704 7457-7509/? I/System.out: Error: /data/data/com.prosec/files/WhiteList.txt: open failed: ENOENT (No such file or directory)
03-12 09:06:37.704 7457-7509/? W/System.err: java.io.FileNotFoundException: /data/data/com.prosec/files/WhiteList.txt: open failed: ENOENT (No such file or directory)
03-12 09:06:37.704 7457-7509/? W/System.err: at libcore.io.IoBridge.open(IoBridge.java:456)
03-12 09:06:37.712 7457-7509/? W/System.err: at java.io.FileOutputStream.<init>(FileOutputStream.java:87)
03-12 09:06:37.712 7457-7509/? W/System.err: at java.io.FileOutputStream.<init>(FileOutputStream.java:72)
03-12 09:06:37.712 7457-7509/? W/System.err: at com.prosec.ReceiveFTP.run(ReceiveFTP.java:43)
如果我关闭应用程序,然后再次打开,一切正常。此错误仅在第一次出现
最佳答案
您的问题特别出在 "/data/data/com.prosec/files/WhiteList.txt"
下载路径上。
咨询this page关于保存文件。
您可以通过 getFilesDir()
在内部存储上执行此操作或 getCacheDir()
:
File file = new File(context.getFilesDir(), filename);
或在外部存储上使用 Environment
类:
File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), filename);
关于android - 在 Android 上使用 FTP 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35957468/