2017-01-09 64 views
0

我想做一个Android活动写测试文件到设备的可移动SD卡。然后我需要能够验证它被写入。我已经能够写入手机的内部存储器(称为外部存储器,虽然不是),但不能写入可移动的SD卡。我想我需要得到正确的路径。安卓 - 保存文件到可移动标清和读取

我已经能够检查与此代码的可移动SD卡的存在,但一直没能将其转化为写入文件:

String secStore = System.getenv("SECONDARY_STORAGE"); 
    File path = new File(secStore); 
    StatFs stat = new StatFs(path.getPath()); 

这是我写测试文件代码BT就像我说的,把它写入到设备的内部存储:

File dir = new File(android.os.Environment.getExternalStorageDirectory(), "TestFolder"); 
     if (!dir.exists()) { 
      dir.mkdirs(); 
     } 
     String filename = "SD_Test.txt"; 
      try { 
       File f = new File(dir + File.separator + filename); 
       FileOutputStream fOut = new FileOutputStream(f); 
       OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut); 
       myOutWriter.append("Testing SD Card"); 
       myOutWriter.flush(); 
       myOutWriter.close(); 
       fOut.close(); 
       if(f.exists()){ 
        Toast.makeText(getBaseContext(), 
          "File Created", 
          Toast.LENGTH_SHORT).show(); 
       } 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

    } 

请帮帮忙,我一直在这几天,我坚持!

回答

1

这是我写测试文件BT作为我的代码表示,将其写入设备的内部存储:

它写什么了Android SDK是指为external storage

我已经能够检查可移动SD卡的存在,此代码

存在对环境变量存在,更不用说它有一定的含义没有要求。

但一直没能将其转化为书面文件

您没有获得在Android 4.4+上removable storage任意文件系统中的位置。使用getExternalFilesDirs(),getExternalCacheDirs()getExternalMediaDirs()。如果这些方法返回2+条目,则第二个和后续条目是可移动存储上的位置,您可以在其中读取和写入。