保存到文件停止工作

时间:2014-11-25 23:04:16

标签: android save

首先,这里是代码,所以每个人都知道我们正在处理的事情:

try
    {
        // now save to external files
        if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
        {
            String fileName = CONSTANTS.SETTINGS.MANAGER.DEFAULT_FILE_NAME + "." + this.format.value();
            File saveDir = new File(CONSTANTS.SETTINGS.MANAGER.EXTERNAL_PUBLIC_DIR + File.separator + this.projectName);
            if (saveDir.mkdirs() || saveDir.isDirectory())
            {
                File saveFile = new File(saveDir.getAbsolutePath() + File.separator + fileName);
                File saveFileRoot = new File(CONSTANTS.SETTINGS.MANAGER.EXTERNAL_PUBLIC_DIR + File.separator  + "Survey-" + projectName + ".xml");
                LayerManager.getInstance().setDate(new Date());

                switch (format)
                {
                    case XML:
                    {
                        if (CONSTANTS.DEBUGGING_MODE)
                        {
                            SLog.d(CONSTANTS.SETTINGS.MANAGER.LOGTAG, "Writing user file into " + saveFile.getAbsolutePath());
                        }
                        xmlSerializer.write(LayerManager.getInstance(), saveFile);
                        xmlSerializer.write(LayerManager.getInstance(), saveFileRoot);
                    }
                    break;
                    case JSON:
                    {
                        FileWriter saveWriter = new FileWriter(saveFile);
                        try
                        {
                            if (CONSTANTS.DEBUGGING_MODE)
                            {
                                SLog.d(CONSTANTS.SETTINGS.MANAGER.LOGTAG, "Writing user file into " + saveFile.getAbsolutePath());
                            }
                            String content = gson.toJson(LayerManager.getInstance());
                            saveWriter.write(content);
                        }
                        finally
                        {
                            saveWriter.flush();
                            saveWriter.close();
                        }
                    }
                    break;
                    default:
                    {
                        SLog.e(CONSTANTS.ACTIVITY.MAIN.LOGTAG, "No user save requested.");
                    }
                    break;
                }

                // send event to update media scanner
                FileSaved event = new FileSaved();
                EventBus.getDefault().post(event);
            }
            else
            {
                SLog.e(CONSTANTS.ACTIVITY.MAIN.LOGTAG, "Could not write into save projectName");
                return false;
            }
        }
        else
        {
            return false;
        }
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
    return true;
}

这适用于Android 4.1.2设备API 16。 代码在" external_public_dir"中创建了一个名为projectName的新命令。 < = saveDir
然后,根据格式xml / json,在两种情况下,文件都写在新创建的目录中。 作为测试,文件也直接写入external_public_dir。 windows explorer screenshot of directory on Android 4.1.2 device

将设备连接到(windows)计算机时,文件/目录应该是它们的位置。

但是,当这个代码在使用Android 4.4.4 API 19的设备上运行时,windows ...不再识别这两个目录。

windows explorer screenshot of directory on Android 4.4.4 device

这两个文件'测试& test2应该是包含xml文件的文件夹。 以下使问题更加令人困惑: 1)Android文件浏览器可识别目录... 2)如您所见,saveFileRoot创建的另一个文件确实出现在Windows资源管理器...

我很难过,任何建议或提示都会非常有帮助!

提前致谢

0 个答案:

没有答案