我正在开发一种相机应用程序,我需要它将每张图片保存在我的 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 设备,但找不到任何文件夹。
我的猜测是该文件夹是隐藏的(这只是一个假设......)
谢谢