繁体   English   中英

Android将文件保存到SD卡,而不是内部存储

[英]Android saving file to SD Card, not internal storage

我知道有人对此有疑问,但由于某种原因,似乎对我没有任何帮助。 我正在尝试将2个文本文件从我的应用保存到SD卡。 它会正确创建目录和文件,但始终创建​​内部存储器,而不是外部存储器。 我确实在清单中也有相应的权限。

try {
        File sdCard = Environment.getExternalStorageDirectory();
        File myFile = new File(sdCard.getAbsolutePath() + "/rlgl");
        myFile.mkdir();
       // myFile.createNewFile();
        String newLine = System.getProperty("line.separator");
        File file = new File(myFile, "rlgls.txt");
        if(file.exists())  {

        } else if (!file.exists()){
        FileOutputStream fOut = new FileOutputStream(file);
        OutputStreamWriter myOutWriter = 
                                new OutputStreamWriter(fOut);
        for (int i = 0; i < 30; i++) {
        myOutWriter.append("0.0" + newLine);
        }
        myOutWriter.close();
        fOut.close();
        }
        } catch (IOException e) {
            e.printStackTrace();
        }

这是我正在使用的代码。 我遵循了其他Stackoverflow响应的指示,但从未使用过SD卡。 我做错了什么吗? 还有一个后续问题,我是否可以使用上面的代码来使文件对用户不可见。 他们应该没有理由打开它们。 提前致谢。

它会正确创建目录和文件,但始终会创建内部存储,而不会创建外部存储

不,它将它们放置在外部存储上。 用户看到的是内部存储,而开发人员看到的是外部存储 内部存储可通过类似getFilesDir()方法进行访问。 而且这些都不是可移动存储 ,例如某种形式的SD卡。

还有一个后续问题,我是否可以使用上面的代码来使文件对用户不可见。 他们应该没有理由打开它们。

然后将它们放在内部存储中。

出现“。”时,我的应用程序无法从文件读取/写入文件。 在他们的名字前面

我觉得很难相信。 . 前缀使它们在某些文件浏览器中默认不显示,仅此而已。 用户可以访问它们(如果它们位于外部存储设备上),而应用程序可以访问它们(与其他文件一样,遵循相同的规则,没有前导. )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM