2014-01-08 2 views
2

Привет Я создал папку в сд карты, держащего дБ нижеСкрыть файл с SD карты

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(); 
     } 
    } 

Но, это не работает. Не уверен, как скрыть файл в SDcard. Пожалуйста помоги. Благодаря!

+0

http://stackoverflow.com/questions/1129644/how-to-make-a-file-hidden-in-android-sd-card – KOTIOS

+0

Спасибо за ссылку. где включить .db-файл, как сказано в ссылке. – sanjana

ответ

0

Если вы используете Java 7 вы можете использовать новый пакет java.nio.file.attribute так:

Path path = FileSystems.getDefault().getPath("/j", "sa"); 
Files.setAttribute(path, "dos:hidden", true); 

Или, если вы используете старую версию Java и/или хотите чтобы сделать это с помощью выполнения, попробуйте следующее:

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); 

O г

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(); 
     } 
    } 
+0

Спасибо за ответ. где я должен использовать этот код – sanjana

+0

Я пробовал второй, и я получаю java.io.IOException: Ошибка при запуске exec(). Команда: [cmd.exe,/C, attrib, -s, -h, -r/mnt/sdcard/EaseTrailCount] Рабочий каталог: null Окружающая среда: null – sanjana

+0

Я думаю, что u не создал каталог. Сначала создайте каталог, а затем скрыть его – Sunny

Смежные вопросы