android 获取路径目录方法以及判断目录是否存在,创建目录

本文介绍了如何使用Android的Environment类进行外部存储器的操作,并提供了实用的文件管理方法,包括创建文件、目录、写入数据等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Environment 常用方法: 

* 方法:getDataDirectory()
解释:返回 File ,获取 Android 数据目录。
* 方法:getDownloadCacheDirectory()
解释:返回 File ,获取 Android 下载/缓存内容目录。
* 方法:getExternalStorageDirectory()
解释:返回 File ,获取外部存储目录即 SDCard
* 方法:getExternalStoragePublicDirectory(String type)
解释:返回 File ,取一个高端的公用的外部存储器目录来摆放某些类型的文件
* 方法:getExternalStorageState()
解释:返回 File ,获取外部存储设备的当前状态
* 方法:getRootDirectory()
解释:返回 File ,获取 Android 的根目录

 

package jianglin.fileutils;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
 
import android.os.Environment;
 
public class FileUtils {
   
    private String SDCardROOT;  
  
    public String getSDPATH() {
       return SDCardROOT;
    }
   
    public FileUtils() {
       //得到当前外部存储设备的目录,得到的目录名/SDCARD
    	SDCardROOT = Environment.getExternalStorageDirectory().getAbsolutePath() +File.separator;
    }
   //在SD卡上创建文件
   
    public File createFileInSDCard(String fileName,String dir) throws IOException {
       File file = new File(SDCardROOT + dir + File.separator + fileName);
       file.createNewFile();
       return file;
    }
   //在SD卡上创建目录
   
    public File creatSDDir(String dir) {
       File dirFile = new File(SDCardROOT + dir + File.separator);
       System.out.println(dirFile.mkdirs());
       return dirFile;
    }
  //判断SD卡上的文件夹是否存在
   
    public boolean isFileExist(String fileName,String path){
       File file = new File(SDCardROOT + path + File.separator + fileName);
       return file.exists();
    }
   
   
    public File write2SDFromInput(String path,String fileName,InputStream input){
       File file = null;
       OutputStream output = null;
       try{
           creatSDDir(path);
           file = createFileInSDCard(fileName,path);
           output = new FileOutputStream(file);
           byte buffer [] = new byte[4 * 1024];
           int temp;
           while((temp = input.read(buffer)) != -1){
              output.write(buffer,0,temp);
           }
           output.flush();
       }
       catch(Exception e){
           e.printStackTrace();
       }
       finally{
           try{
              output.close();
           }
           catch(Exception e){
              e.printStackTrace();
           }
       }
       return file;
    }
 
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值