0

我正在开发一种相机应用程序,我需要它将每张图片保存在我的 android 设备上的特定文件夹中:

图片 1 将进入 Project/1/Image.jpg

图片 2 将进入 Project/2/Image.jpg

等等……

这是保存图像的方法:

    private void SavePicture( byte[] imageData ) 
    {
        File path = new File( Environment.getExternalStoragePublicDirectory ( Environment.DIRECTORY_PICTURES ) + "/Project" );
        boolean success = true;
        if( !path.exists() ) 
        {
            success = path.mkdir();
        }

        if( success ) 
        {
            int iterator = 0;
            do 
            {
                ++iterator;
                path = new File( path + "/"+Integer.toString(iterator) );
            }while( path.exists() );
            success = path.mkdir();
        }

        if(!success) 
        {
            Log.d("ACTIVITY", "failed at creating directory!");
        }

        String filename = "Image.jpg";
        try 
        {
            Uri uriTarget = Uri.fromFile( new File( path, filename ) );
            OutputStream output = getContentResolver().openOutputStream( uriTarget );
            output.write( imageData );
            output.flush();
            output.close();
        }
        catch( FileNotFoundException e ) 
        {
            Log.d( "ACTIVITY", "Save image failed due to FileNotFoundException: " + e );
        }
        catch( IOException e ) 
        {
            Log.d( "ACTIVITY", "Save image failed due to IOException: " + e );
        }
    }

在这段代码中,我从一个循环开始查找我所在的号码,所以如果我有文件夹 1、2、3、4,我将创建文件夹 5。

我的问题如下:当它通过该循环时 do{...}while(path.exists()); 找到我之前创建的每个文件夹。但是当我查看我的画廊时,我看不到任何图片或文件夹。我还从计算机的文件系统中查看了 android 设备,但找不到任何文件夹。

我的猜测是该文件夹是隐藏的(这只是一个假设......)

谢谢

4

1 回答 1

2

您应该已经设置了在清单中写入的权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
于 2012-05-24T21:03:04.653 回答