如何获取App Files Dir到一个类?

时间:2014-12-18 16:58:33

标签: android android-context

我创建了一个新类来处理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()或其他返回此目录的函数。我该如何编写代码?

3 个答案:

答案 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);