天天看點

檔案讀寫系列:Environment.getExternalStorageDirectory().getPath()簡單使用

  • 此代碼對應的目錄是
/storage/emulated/0
           
  • 現在嘗試在此目錄下建立一個helloworld.txt檔案。
  • AndroidManifest.xml中申請讀寫權限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
           
  • 引入rxPermission,具體步驟參考:權限系列:使用RxPermission申請權限
  • MainActivity完整代碼如下
public class MainActivity extends AppCompatActivity {
    private static final String TAG = "xxx";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.i(TAG, Environment.getExternalStorageDirectory().getPath());

        new RxPermissions(MainActivity.this)
                .request(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE)
                .subscribe(new Consumer<Boolean>() {
                    @Override
                    public void accept(Boolean aBoolean) throws Exception {
                        if (aBoolean) {
                            createFile();
                            Log.e("xxx", "yy");
                        } else {
                            Log.e("xxx", "xx");
                        }
                    }
                });

    }

    private void createFile() {
        try {
            File file = new File(Environment.getExternalStorageDirectory().getPath() + "/helloworld.txt");
            if (file.createNewFile()) {
                Log.i("xx","檔案建立成功!");
            } else {
                Log.i("xx","出錯了,該檔案已經存在。");
            }
        } catch (Exception e) {
            e.printStackTrace();
            Log.e("xx",e.getMessage());
        }

    }
}
           
  • 檢視是否建立成功。在小米5 (android 8 ,sdk version 26 )上,/storage/emulated目錄是看不到的,如下所示。
    檔案讀寫系列:Environment.getExternalStorageDirectory().getPath()簡單使用
    其實,/storage/emulated/0 對應着另外一個目錄:
/sdcard
           

找到目錄最下面,果然看到了建立的helloworld.txt檔案。

檔案讀寫系列:Environment.getExternalStorageDirectory().getPath()簡單使用
  • demo解除安裝後,helloworld.txt還在嗎?依然在。