您好我已经在sd卡中创建了一个文件夹,其中包含一个db,如下所示
public Databasehandler(Context context)
{
//super(context, DATABASE_NAME, null, DATABASE_VERSION);
super(context, Environment.getExternalStorageDirectory()+ File.separator + "MyAppFolder"+ "/"+DATABASE_NAME, null, DATABASE_VERSION);
}
现在,我正在尝试隐藏此文件,以使其无法访问。我尝试了以下代码。
final String NOMEDIA_FILE = ".nomedia";
path = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+ File.separator + "MyAppFolder" );
path.mkdirs();
file= new File(path,NOMEDIA_FILE);
if (!file.exists())
{
try
{
file.createNewFile();
Log.e("NOMEDIA_FILE"," ");
}
catch (IOException e)
{
e.printStackTrace();
}
}
但是,这不起作用。不确定如何在SD卡中隐藏文件。请帮忙。谢谢!
答案 0 :(得分:0)
如果您使用的是Java 7,则可以使用新的java.nio.file.attribute包,如下所示:
Path path = FileSystems.getDefault().getPath("/j", "sa");
Files.setAttribute(path, "dos:hidden", true);
或者,如果你使用的是旧版本的Java和/或想要使用Runtime来实现它,请试试这个:
Process process = Runtime.getRuntime().exec("cmd.exe /C attrib -s -h -r your_path");
你可以像这样使用它
final String NOMEDIA_FILE = ".nomedia";
path = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+ File.separator + "MyAppFolder" );
path.mkdirs();
file= new File(path,NOMEDIA_FILE);
Files.setAttribute(path, "dos:hidden", true);
或强>
Process process = Runtime.getRuntime().exec("cmd.exe /C attrib -s -h -r"+path);
if (!file.exists())
{
try
{
file.createNewFile();
Log.e("NOMEDIA_FILE"," ");
}
catch (IOException e)
{
e.printStackTrace();
}
}