如何从android中的目录中删除图像

问题描述 投票:2回答:1

我在该位置创建了一个图像。我可以看到图像被创建了

String Dirlocation = "Pictures/MyDirectoryName";
String mImageName = System.currentTimeMillis()+".jpg";

createFile(mDirectoryPath,mImageName,fileData);

private String createFile(String mDirectoryPath, String mImageName, byte[] fileData) throws IOException {

        FileOutputStream out=null;
        try{
            File root = Environment.getExternalStoragePublicDirectory(mDirectoryPath);
            File dir = new File(root + File.separator);
            if (!dir.exists()) dir.mkdir();

            //Create file..
            String mFinalUri = root + File.separator + mImageName;
            File file = new File(mFinalUri);
            file.createNewFile();

            out = new FileOutputStream(file);
            if(out!=null){
                out.write(fileData);
                MediaScannerConnection.scanFile(context, new String[] { file.getPath() }, new String[] { "image/jpg" }, null);
            }

            //Check if file exists if true return the URI
            File mFile = new File(mFinalUri);
            if(mFile.exists()){
                return mFinalUri;
            }else{
                return null;
            }
        }catch (FileNotFoundException e) {
            e.printStackTrace();
        }catch (IOException e) {
            e.printStackTrace();
        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            out.close();
        }

        return mDirectoryPath;
    }

如何删除该目录中的所有图像?

我尝试过:

String mDirectoryPath = "Pictures/MyDirectoryName";
            File dir = new File(mDirectoryPath);
            if (dir.isDirectory())
            {
                String[] children = dir.list();
                for (int i = 0; i < children.length; i++)
                {
                    new File(dir, children[i]).delete();
                }
            }

  • 目录中的图像不会被删除
  • dir.isDirectory()失败并说它不是一个目录

如何正确删除图像?

android
1个回答
1
投票

在您应该使用的删除代码中

File dir = Environment.getExternalStoragePublicDirectory(mDirectoryPath)

并不是

File dir = new File(mDirectoryPath);

在您的代码中,文件将指向“/ Pictures / MyDirectoryName”;哪个不存在(您的应用没有权限在root上写入/)

© www.soinside.com 2019 - 2024. All rights reserved.