在SD卡或内存上创建目录的行为

在我的应用程序中,我必须让用户选择保存某些文件的位置。 它必须从SD卡或内存中选择。

我尝试做一些像这样的测试导演:

对于SD卡

  File sdCard = Environment.getExternalStorageDirectory();
  File dir = new File (sdCard.getAbsolutePath() + "/External dir");
  dir.mkdirs();

对于内部

File path2 = Environment.getDataDirectory();
File dir22 = new File (path2.getAbsolutePath() + "/Internal dir");
dir22.mkdirs();
  • 只有'外部目录'被创建。 '内部目录'没有。 另外我还在我的手机上安装了'OI文件管理器',而且我也无法在内部存储上创建任何目录
  • 我的手机根本没有任何Sd卡。 上面的代码不会给我任何关于没有SD卡的错误。
  • 另外我尝试:

    StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
    double sdAvailSize = (double)stat.getAvailableBlocks()*(double)stat.getBlockSize();
    double mb= sdAvailSize / (1024*1024);
    
    Log.w("sd-card",""+mb);    //show me that i have 1240 mb on sd-card
    

    File path = Environment.getDataDirectory();
    StatFs stats = new StatFs(path.getPath());
    int availableBlocks = stats.getAvailableBlocks();
    int blockSizeInBytes = stats.getBlockSize();
    int freeSpaceInBytes = availableBlocks * blockSizeInBytes;
    double mb2= (availableBlocks*blockSizeInBytes)/(1024*1024);
    
    Log.w("telephone",""+mb2);   ///shows me 283 mb on phone
    

    这是为什么?

    链接地址: http://www.djcxy.com/p/66909.html

    上一篇: Behavior of Create directory on SD card or internal memory

    下一篇: inventor: install apps onto SD card