0

下面的代码片段试图存储一个Gesture对象。

private Gesture mGesture;
private GestureLibrary store;
store.addGesture("test", mGesture);
store.save();

我想知道mGesture存储在哪里?

紧跟上面的代码,作者给出如下代码:

final String path = new File(Environment.getExternalStorageDirectory(),
                    "gestures").getAbsolutePath();
Toast.makeText(this, getString(R.string.save_success, path), Toast.LENGTH_LONG).show();

所以我猜mGesture它存储在由path. 但我不知道什么是路径。我试过调试。它给了我类似的东西:“storage/emulated/0/gestures/”。但是我在我的设备上找不到这个目录。顺便说一句,我的设备是nexus 4

4

3 回答 3

0

是的,同意 gabe,这只是一个建议,但您可以使用 if 和 else 与 mkdirs 一起检查目录或文件夹是否存在,如果它不存在,它将在指定位置创建一个新文件夹。

于 2013-04-16T03:01:52.943 回答
0

Nexus 设备没有 SD 插槽。他们假装内部驱动器上的某个地方是 SD 卡。但是该函数返回的确切路径确实存在于您的设备上,否则您无法为其创建文件。

顺便说一句,不要依赖于返回的值在设备之间是相同的。它不是。

于 2013-04-16T02:55:59.043 回答
0

由于 Nexus 4 没有外部 SD(我现在正在使用的 Nexus 5 也是如此),它的操作系统暂时模拟了 SD。因此,调用Environment.getExternalStorageDirectory()会返回以下路径:tempDirPath:/storage/emulated/0/,但您稍后可以在 访问它/storage/emulated/legacy

尝试通过 访问它adb shell,此legacy文件夹将存储模拟的外部 SD 的内容。

于 2014-01-16T22:23:55.090 回答