Android中关于删除文件以及文件夹的操作

。。。。。。开始以为删除文件和文件夹会是一样的,同样的找到路径。。。但是只是有那么一点点不一样而已。。。。

首先我们判断是否有SD卡,然后再进行删除:

/**
     * 先判断是否有SD卡
     * */
    private String isSdcard() {
        File sdcardDir = null;
        boolean isSDExist = Environment.getExternalStorageState().equals(
                Environment.MEDIA_MOUNTED);
        if (isSDExist) {
            // 如果存在SDcard 就找到跟目录
            sdcardDir = Environment.getExternalStorageDirectory();
            return sdcardDir.toString();
        } else {
            return null;
        }
    }

    /**
     * 删除文件夹所有内容
     * 
     */
    public boolean deleteFile(File file) {
        System.out.println("file is==>" + file);
        boolean isSuccess = false;
        if (file.exists()) { // 判断文件是否存在
            if (file.isFile()) { // 判断是否是文件
                System.out.println("is file");
                file.delete(); // delete()方法 你应该知道 是删除的意思;
            } else if (file.isDirectory()) { // 否则如果它是一个目录
                System.out.println("is dic");
                File files[] = file.listFiles(); // 声明目录下所有的文件 files[];
                for (int i = 0; i < files.length; i++) { // 遍历目录下所有的文件
                    this.deleteFile(files[i]); // 把每个文件 用这个方法进行迭代
                }
            }
            file.delete();
            isSuccess = true;
        } else {
            isSuccess = false;
        }
        return isSuccess;
    }

okay,另外,这里附上截屏方法:

private void CutImage() {
        cur_Time = System.currentTimeMillis() / 1000;
        // Bitmap-->Drawable
        // BitmapDrawable bd = new BitmapDrawable(shot());
        // imageView.setBackgroundDrawable(bd);

        // 保存Bitmap

        if (null == isSdcard()) {
            Toast.makeText(this, "内存卡不存在", Toast.LENGTH_SHORT).show();
        } else {
            Path = isSdcard() + fileName;
            String SavePath = Path + mId + "_" + cur_Time + ".jpg";
            bmp = shot();
            File pathFile = new File(Path);
            if (!pathFile.exists()) {
                System.out.println("mkdir");
                pathFile.mkdir();
            }
            File file = null;
            try {

                file = new File(SavePath);
                if (!file.exists()) {
                    file.createNewFile();
                    System.out.println("createNewFile");
                }

            } catch (Exception e) {
                e.printStackTrace();
            }
            FileOutputStream fos = null;
            try {
                fos = new FileOutputStream(file);

            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            if (null != fos) {
                bmp.compress(Bitmap.CompressFormat.PNG, 90, fos);
                System.out.println("compress");
                try {
                    fos.flush();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                try {
                    fos.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            } else {

            }

        }
    }

还有一种返回Bitmap:

    /**
     * 截屏方法
     * 
     * @return
     */
    private Bitmap shot() {
        View view = getWindow().getDecorView();
        Display display = this.getWindowManager().getDefaultDisplay();
        view.layout(0, 0, display.getWidth(), display.getHeight());
        view.setDrawingCacheEnabled(true);// 允许当前窗口保存缓存信息,这样getDrawingCache()方法才会返回一个Bitmap
        Bitmap bmp = Bitmap.createBitmap(view.getDrawingCache());
        return bmp;
    }
原文地址:https://www.cnblogs.com/Catherine-Brain/p/3861590.html