我正在开发一种相机应用程序,我需要它将每张图片保存在我的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设备,但找不到任何文件夹。
我的猜测是该文件夹是隐藏的(这只是一个假设...)
由于
答案 0 :(得分:2)
您应该设置在清单中写入的权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />