我创建了一个新类来处理FTP下载并将它们存储在我的App中的/ files /文件夹中。
我已经对目录路径进行了硬编码,但我希望使用更有效的方法。
我的代码是:
public class myFTP {
public FTPClient connect(String ip, String user, String pass) {
SOME CODE
}
public boolean download (FTPClient client, File file, String dir){
SOME CODE
file = new File("/data/data/com.myapp/files/"+NAME OF DOWNLOAD FILE); //Here is my problem
}
我想将“/data/data/com.myapp/files”更改为类似context.getFilesDir()或其他返回此目录的函数。我该如何编写代码?
答案 0 :(得分:1)
你已经掌握了大部分内容
File file = new File(context.getFilesDir() + File.separator + nameOfDownloadFile);
这将为您提供对"文件"中文件对象的引用。你的应用目录。
答案 1 :(得分:0)
你应该使用类似的东西:
String LocalDirectory = Environment.getExternalStorageDirectory().getAbsolutePath();
LocalDirectory
包含外部存储的路径。
答案 2 :(得分:0)
找到此http://itekblog.com/android-context-in-non-activity-class/
修改我的课程:
public class myFTP extends ContextWrapper {
public myFTP(Context base) {
super(base);
}
public FTPClient connect(String ip, String user, String pass) {
SOME CODE
}
public boolean download (FTPClient client, File file, String dir){
SOME CODE
file = new File(context.getFileDir()+NAME OF DOWNLOAD FILE); //Here is my problem
}
现在从具有上下文的服务,活动或anthing中调用它:
myFTP myftp = new myFTP(this);