【问题标题】:How to sort files in assets folder?如何对资产文件夹中的文件进行排序?
【发布时间】:2013-05-17 08:31:26
【问题描述】:

这里面临着文件排序的问题。从文件夹 Asset 中选择文件。如何按升序对文件进行排序? 这是我的代码:

//fillGrid
private void fillGridAdapter(int cat) {
   ASSETS_IMAGE_DIR = imagePath[cat];
   addImages(getImages(imagePath[cat]));
}
//Adds the files
private void addImages(String[] temp){
   imBitmap = new Bitmap[temp.length];
   if(temp != null) {
   for(int i = 0; i < temp.length; i++){
       try {
    imBitmap[i] = getBitmapFromAsset(imagePath[g.getImageCat()]+"/"+temp[i]);
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
      }
    }
}
private String[] getImages(String f){
        try {
        AssetManager assetManager = getResources().getAssets();
        String[] temp = assetManager.list(f);

        Arrays.sort(temp);
        return temp;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
}

在assetManager.list(f) String[] temp - (1.jpg, 10.jpg, 12.jpg ... 9.jpg) 之后。在 Arrays.sort(temp) - (1.jpg, 10.jpg, 12.jpg ... 9.jpg) 之后。我需要 - 1.jpg、2.jpg、3.jpg... n.jpg。

【问题讨论】:

  • 资产文件夹中的图片数量是固定的吗?
  • 将所有图片名称添加到arraylist并使用collection进行排序

标签: java android string sorting assets


【解决方案1】:
【解决方案2】:

听起来您想将文件排序为数字顺序...而不是词法顺序。

为此,您需要将路径名拆分为数字和非数字段。对于数字段,您需要将段解析为整数并根据整数值进行排序。

看起来您的文件格式为&lt;number&gt;.&lt;suffix&gt;,因此拆分应该很简单。

此逻辑需要在 Comparatorcompare 方法中实现,您向 sort 提供参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    • 1970-01-01
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多