我的应用程序创建并使用SD卡中的一些图像。 这些图像显示在设备的图库中,但我不想要那样。 所以我试图在这个目录中创建一个.nonmedia文件,但我的问题是这个文件不会被创建。
下面是代码:
public void createNonmediaFile(){
String text = "NONEMEDIA";
String path = Environment.getExternalStorageDirectory().getPath() + "/" + AVATARS + "/.nonmedia";
FileOutputStream fos;
try {
fos = new FileOutputStream(path);
fos.write(text.getBytes());
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
没有例外。
我猜它与“。”有关。在名字里。如果我尝试相同的操作,则会创建文件。
感谢您的帮助。
答案 0 :(得分:1)
尝试使用以下示例
File file = new File(directoryPath, ".nomedia");
if (!file.exists()) {
try {
file.createNewFile();
}
catch(IOException e) {
}
}
答案 1 :(得分:0)
在你的android-manifest文件中加入以下权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
然后下面的代码应该可以正常工作:
private static final String AVATARS = "avatars";
public void createNonmediaFile(){
String text = "NONEMEDIA";
String path = Environment.getExternalStorageDirectory().getPath() + "/" + AVATARS + "/.nonmedia";
String f = Environment.getExternalStorageDirectory().getPath() + "/" + AVATARS ;
FileOutputStream fos;
try {
File folder = new File(f);
boolean success=false;
if (!folder.exists()) {
success = folder.mkdir();
}
if (true==success) {
File yourFile = new File(path);
if(!yourFile.exists()) {
yourFile.createNewFile();
}
} else {
// Do something else on failure
}
fos = new FileOutputStream(path);
fos.write(text.getBytes());
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}