2014-02-13 3 views
1

SharedPreferences에 환경 설정을 저장했습니다. 어떻게 환경 설정 파일을 sdcard에 저장할 수 있습니까?sharedPreference 파일 저장

+0

에 **/데이터/데이터/your.app.name/shared_prefs/your.app.name. preferences.xml ** –

+0

나는 코드를 통해이를 수행하고, 나중에 사용자를위한 옵션을 구현한다. –

+0

물론, 코드를 통해 가능하다. 나는 수동으로 의미하지 않았다. –

답변

1

sdcard에있는 sharedpreference를 저장하려면 당신이

private void backup(Context context) { 
    File root = context.getFilesDir(); 
    File parent = root.getParentFile(); 
    File[] files = parent.listFiles(); 
    File[] tmp = null; 
    for (File file : files) { 
     if (file.isDirectory()) { 
      tmp = file.listFiles(new FileFilter() { 
       @Override 
       public boolean accept(File pathname) { 
        return pathname.getName().contains("your_shared_preference_file_name"); 
       } 
      }); 
      if (tmp != null && tmp.length == 1) { 
       break; 
      } 
     } 
    } 

    File file = null; 
    if (tmp.length == 1) { 
     parent = tmp[0].getParentFile(); 
     file = new File(Environment.getExternalStorageDirectory(), "tmp.xml"); 
     FileInputStream fis = new FileInputStream(tmp[0]); 
     FileOutputStream fos = new FileOutputStream(file); 
     byte[] buffer = new byte[32768]; 
     int count = 0; 
     while ((count = fis.read(buffer)) > 0) { 
      fos.write(buffer, 0, count); 
     } 
     fis.close(); 
     fos.flush(); 
     fos.close(); 
    } 

}

0
시도 할 수 있습니다 {그가 저장하고-intallations 재를 통해 환경 설정을로드 할 수 있도록 나는, 백업 사용자에게 옵션을 제공 할}

마지막으로 프로젝트 완료 시간이 있습니다

사용자 데이터를 저장하기 위해 하나의 기본 설정 파일을 사용했기 때문에이 파일을 복사하는 데 사용했습니다.

File fileSrc = new File(filePath, "userdata.xml"); 
File fileDes = new File("/data/data/com.nik/shared_prefs/", "userdata.xml"); 
... 
... 
private void copyFileToShared(File fileSrc, File fileDes) { 
FileInputStream fileinputstream=null; 
FileOutputStream fileoutputstream=null; 
try { 
fileinputstream = new FileInputStream(fileSrc); 
fileoutputstream = new FileOutputStream(fileDes); 
byte[] buffer = new byte[4096]; 
int count = 0; 
while ((count = fileinputstream.read(buffer)) > 0) { 
    fileoutputstream.write(buffer, 0, count); 
} 
fileinputstream.close(); 
fileoutputstream.flush(); 
fileoutputstream.close(); 
} 
catch(IOException e) { 
    e.printStackTrace(); 
} 
} 

그리고 파일이 복사됩니다 ... :-)

당신은 복사해서 시도 할 수