这是我在应用程序特定目录中创建文件夹的方式的代码。
private File createDirectory(String dirName) {
File file = new File(getApplicationContext().getExternalFilesDir(dirName) + "/" + dirName);
if (!file.exists()) {
file.mkdir();
}
return file;
}
答案 0 :(得分:0)
您的方法返回 File
,这是一个目录。现在你必须创建新的图像文件对象
File dir = createDirectory("imagesDirectory");
File file = new File(dir.getAbsolutePath(), "imageName.jpg");
FileOutputStream outStream = new FileOutputStream(file);
现在您必须将您的 Bitmap
压缩为 JPG(如上面设置的名称)并提供此流
Bitmap pictureBitmap = ...; // your image
pictureBitmap.compress(Bitmap.CompressFormat.JPEG, 90, outStream);
不要忘记关闭流
outStream.flush();
outStream.close();
如果你想要无损格式,你可以使用 PNG (Bitmap.CompressFormat.PNG
),不要忘记相应地命名你的文件扩展名
答案 1 :(得分:0)
您只能写入您的 app-specific
文件
File dir_ = new File(context.getFilesDir(), "YOUR_DIR");
dir_.mkdirs();
答案 2 :(得分:0)
您可以使用函数“getExternalFilesDir”并更改括号中的值。这里我放了“Environment.DIRECTORY8DCIM”,但还有其他的(你可以在android开发者网站上查看)。
我举个例子:
private fun getOutputMediaFile(): File? {
val mediaStorageDir = getExternalFilesDir(Environment.DIRECTORY_DCIM).let {
File(it, "[name_folder]").apply { mkdirs() } }
Log.v(TAG, "storage: $mediaStorageDir") ///storage/emulated/0/Android/data/[name_of_your_program]/files/DCIM/[name_folder]
if (!mediaStorageDir?.exists()!!){
if (!mediaStorageDir.mkdirs()) {
Log.v(TAG, "Failed to create directory")
return null
}
}
}
希望对你有用:)