Titanium - Android外部存储 - 创建新目录,然后将文件写入其中

时间:2016-09-13 05:22:29

标签: android filesystems titanium titanium-mobile appcelerator-titanium

我们不能简单地在Android的外部SD卡(不是设备的内部存储器)上以编程方式创建新目录,我们不能在SD卡上写文件吗?

即使在使用 Ti.Filesystem.externalStorageDirectory 之后,Titanium是否也被限制为始终在内部存储器上写入文件?

能够在Android上的SD卡上以编程方式创建新目录的人能否在这里写下答案,或者没有人需要在外部SD卡上写一些东西?

3 个答案:

答案 0 :(得分:2)

您可以使用System类获取如下所示的存储变量

要获取内部SD卡,您可以使用

String extStore = System.getenv("EXTERNAL_STORAGE");
File f_exts = new File(extStore);

要获取外部SD卡,您可以使用

String secStore = System.getenv("SECONDARY_STORAGE");
File f_secs = new File(secStore);

您可以选择创建文件夹的位置以及要使用的文件夹。

修改

Environment.getExternalStorageDirectory()详细信息

  • 返回主要共享/外部存储目录。
  • 如果用户已在其计算机上安装此目录,已从设备中删除或发生其他一些问题,则该目录当前可能无法访问。您可以使用getExternalStorageState()确定其当前状态。
  

注意:不要被"外部"这个词弄糊涂。这里。此目录最好被视为媒体/共享存储。它是一个文件系统,可以容纳相对大量的数据,并在所有应用程序之间共享(不强制执行权限)。传统上这是一张SD卡,但它也可以作为内置存储器实现,该设备不同于受保护的内部存储器,可以作为文件系统安装在计算机上。

来自Environment

的参考资料

希望它能提供帮助。

答案 1 :(得分:0)

在sdcard中尝试这个创建文件夹和文件

File localFile = new File(Environment.getExternalStorageDirectory(),"/data/create_new_folder_name/");
            if (!localFile.exists()) {
                localFile.mkdir();
            }
            try{
                File gpxfile = new File(localFile, "yourfilename.xyz");
                FileWriter writer = new FileWriter(gpxfile,true);
                writer.append("your file text");
                writer.flush();
                writer.close();
            } catch (IOException e) {
                e.printStackTrace();
            }

manifest.xml权限

 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

答案 2 :(得分:0)

使用存储访问框架在micro SD卡上写入。 Google for ACTION_OPEN_DOCUMENT_TREE和ACTION_OPEN_DOCUMENT。

除此之外,您还可以在micro SD卡上的一个应用程序特定目录中以正常方式书写。看看getExternalFilesDirs()返回的第二个条目。