0

现在已经两天了,我被困在一个我似乎无法解决的常见而简单的问题上(而其他人却是):

在 Android 上的 SD 卡上创建文件夹!!!是的!!!

我在这里红了很多帖子,很多教程似乎都在说同样的事情:

  • 使用外部文件夹路径 + /yourFolderName 创建一个字符串
  • 创建一个将路径作为参数传递的新文件
  • 调用 mkdir()(或 mkdirs())就可以了
  • 完毕!

您可以在旁边检查 SD 卡是否已安装、可读、可写,当然不要忘记在您的 Manifest.xml 中放入 WRITE_EXTERNAL_STORAGE 的权限,但请注意,它必须设置为清单的直接子级,而不是应用程序!!!

好吧,这似乎对我不起作用。

folder_creation 代码在 onCreate() 内部,我正在尝试调用 MediaScannerConnection 来测试文件是否存在,但它在 OnScanCompleteListener 上返回 null - 但我不确定我是否以正确的方式使用它。

应用程序运行良好(启动默认相机活动,然后返回主活动),但未创建文件夹!(现在我只想创建里面什么都没有的文件夹)

也许是与我的包名中包含“example”一词的包名有关的问题?(我在某处红了一些相关的东西......)

有什么问题?请给我一个提示,建议,一些东西......

我正在使用 minSdkVersion = 8 在带有 Eclipse 的 Mac 1.7.5 上构建,并在带有 2.3.5 (sdkVersion = 10) 的 HTC Wildfire S 上进行测试。在非 root 设备上使用 ES File Manager 1.6.1.6 检查

这是代码的主要部分让我发疯......

我会很高兴知道我能做些什么......提前谢谢你!

myPath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator
                + "myFolder";

        File newDirectory = new File(myPath);
        Log.v("judy says", newDirectory.toString());
        newDirectory.mkdir(); // this doesn't work because "no directory" is displayed in the logCat window
        if (!newDirectory.exists()) {
            newDirectory.mkdir(); 
            Log.v("no, no, no", "no directory");
        }
MediaScannerConnection.scanFile(this,
            new String[] { newDirectory.toString() }, null,
            new MediaScannerConnection.OnScanCompletedListener() {
                public void onScanCompleted(String path, Uri uri) {
                    Log.i("ExternalStorage", "Scanned " + path + ":");
                    Log.i("ExternalStorage", "-> uri=" + uri);
                }
            });
4

2 回答 2

0

如果你想创建一个目录“/mnt/sdcard/somedir/newdir”,这可行

  File temp = new File (Environment.getExternalStorageDirectory (),
                "somedir" + File.separator + "newdir");
        if (!temp.exists ())
            temp.mkdirs ();
于 2012-11-07T00:32:12.617 回答
0

好的,我解决了:简单地使用“使用权限”而不是“权限”,问题是我很难在manifest.xml中编写它,而不是使用图形界面,这样我可以使用内置列表来选择一个许可...

如果我感到无聊,真的很抱歉......我希望这对某人有用。

于 2012-11-07T08:41:45.480 回答