【问题标题】:What's the root of my android app?我的安卓应用程序的根是什么?
【发布时间】:2012-12-24 12:52:17
【问题描述】:

我正在尝试开发一个简单的安卓应用。我想知道我的应用程序文件夹中是否存在图像,但我不知道我的应用程序的根目录是什么。我试过了……

File nomeFile = new File("res/drawable-hdpi/imagename.jpg")
File nomeFile = new File("myappanem/res/drawable-hdpi/imagename.jpg")

...但它不起作用。

【问题讨论】:

    标签: android


    【解决方案1】:

    试试这个:

    File YourFile = new File(Environment.getExternalStorageDirectory(), "/Android/data/....yourfile.txt");
    

    【讨论】:

    • 谢谢大家。但我仍然有一个问题的理解。我需要知道如何访问我的 apk 根目录;所以我可以访问我的文件。例如,我尝试访问位于我的 apk 根目录中的 AndroidManifest.xml。我使用了你建议我的所有代码,然后我添加了字符串“/AndroidManifest.xml”。但是当我检查该文件是否存在(使用 filename.exist())时,android 告诉我它不存在。
    【解决方案2】:

    不,打包后您无法访问可绘制对象或清单。因为根本没有“可绘制”文件夹或清单文件。安装后,您的所有可绘制对象都打包在 APK 文件中。你无法接触到他们。 但是您可以像这样在您的应用程序中访问手机的任何文件夹。

    首先制作目录。

    File directory = new File(Environment.getExternalStorageDirectory()+File.separator  
    +"Your folder");
      directory.mkdirs();
    

    像这样访问您的文件夹。

     String fileUrl = "/Your folder/a.png";
    
     String file = android.os.Environment.getExternalStorageDirectory().getPath() +  
     fileUrl;
    File f = new File(file);
    

    【讨论】:

    • 谢谢大家。但我仍然有一个问题的理解。我需要知道如何访问我的 apk 根目录;所以我可以访问我的文件。例如,我试图访问 AndroidManifest.xml,它位于我的 apk 的根目录中。我使用了您建议的所有代码,然后添加了字符串“/AndroidManifest.xml”。但是当我检查该文件是否存在(使用 filename.exist())时,android 告诉我它不存在。
    • 谢谢。现在我必须更好地解释我必须做什么。我的应用程序需要使用一些图像,从文件夹中获取它们,而不知道它们的名称或它们的数量。按照你说的,我得先在手机上建一个文件夹,然后再把以后要用的图片复制到那个文件夹里?
    • 是的,我想“管理”文件夹中的图像;我想知道他们的名字,他们有多少,我想显示它们等等。所以,我想,我必须将这些图像从我的 apk(?)复制到手机,然后联系他们!我必须把那些图片放在手机上,我不能使用手机上已经存在的一些图片
    • 谢谢。我会学习downloadmanager,我是一个非常初学者的java和android学生,所以我必须学习它。实际上,我想知道我是否可以以更简单,更正确的方式做我想做的事情。我正在尝试创建一个非常简单(且愚蠢)的游戏。我创建一个随机数,然后显示一张图片。比如数字是1,我显示1.jpg。我应该将图像复制到手机上吗?据我了解,我无法在我的 apk 中访问动态图像。我可以吗?谢谢你,你很友善,乐于助人
    • 对不起,其实我已经做到了。我在这个论坛上写了因为,根据我想做的,我不知道我可能有多少张照片!我想知道我的apk文件夹中有多少张图片,所以我可以创建一个与图像数量相关的随机数。当我试图知道我的 apk 中有多少图像以及将 R.drawable 放在一起时,我遇到了问题。和 randomNumeber 变量。我可以用变量解决第一个问题,所以我可以创建一个与变量值相关的随机数。但我无法解决第二个问题(R.drawable. + randomNumeberVariable)
    【解决方案3】:

    您是否考虑应用程序缓存目录的内存 //将其用于内部存储器

         String path =Environment.getDataDirectory().getAbsolutePath();
        File myImage=new File(path,"your file name.extension");
    
         //use this for cache directory     
    
        String path=getApplicationContext().getDir("" , Context.MODE_PRIVATE);
        File myImage=new File(path,"your file name.extension")
    

    【讨论】:

    • 谢谢大家。但我仍然有一个问题的理解。我需要知道如何访问我的 apk 根目录;所以我可以访问我的文件。例如,我试图访问 AndroidManifest.xml,它位于我的 apk 的根目录中。我使用了您建议的所有代码,然后添加了字符串“/AndroidManifest.xml”。但是当我检查该文件是否存在(使用 filename.exist())时,android 告诉我它不存在。
    • 你需要root你的设备
    猜你喜欢
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 2017-01-01
    相关资源
    最近更新 更多