2016-06-23 4 views
1

매우 구체적인 문제가 있습니다. Asus Nexus 7의 외부 저장소에 쓰기를 시도하고 있지만 장치의 에뮬레이트 된 디렉토리에 쓰고 있습니다. 내가 함수가 위의 실행됩니다 때 발생하는 기대 무엇 인 꽂혀 때이 장치를 다시 시작 할 때마다Android : Asus Nexus 7이 다시 시작할 때까지 에뮬레이트 된 메모리를 실행하지 않습니다.

public static void writeExternalMedia(Context context) { 
    if(isExternalStorageWritable()) { 
     String content = "hello world"; 

     File filedir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/test"); 
     filedir.mkdir(); 

     File file; 

     FileOutputStream outputStream; 

     try { 
      file = new File(filedir, "test.txt"); 

      if (!file.exists()) { 
       file.createNewFile(); 
      } 

      outputStream = new FileOutputStream(file); 
      outputStream.write(content.getBytes()); 
      outputStream.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
} 

는, 디렉토리가 장치 아래에 나타납니다 : 여기

내가 사용하고있는 코드입니다.

나는 해결책을 찾으려고 노력했지만 내 질문에 대한 답을 찾을 수 없습니다.

+0

나는 이것과 같은 것이라고 확신한다 : http://stackoverflow.com/questions/37946892/files-copied-by-my-app-not-showing-up-on-pc – Budius

+0

나는 그 방법론을 활용했다. 불행히도 작동하지 않았습니다. 그래도 고마워! – eplewis89

답변

1

두 가지 방법을 만들었습니다. 하나는 파일을 만들기위한 것이고 하나는 파일에 추가하기위한 것입니다. 문제는 createNewFile을 호출하지 않는다는 것입니다.

private File CreateFile(String fileName) 
{ 
    File file = new File(this.getFilesDir(), fileName); 
    try 
    { 
     if(!file.exists()) 
     { 
      file.createNewFile(); 
     } 
    } 
    catch (IOException e) 
    { 
     e.printStackTrace(); 
    } 
    return file; 
} 

private void appendToFile(String file, String content) 
{ 
    try 
    { 
     OutputStreamWriter outputStreamWriter = new OutputStreamWriter(this.openFileOutput(file, this.MODE_APPEND)); 
     outputStreamWriter.append(content + "\n"); 
     outputStreamWriter.close(); 
    } 
    catch (IOException e) 
    { 
     e.printStackTrace(); 
    } 
} 
+0

시도해 주셔서 감사합니다. 그러나 작동하지 않았습니다. 활용하려고하는 파일 디렉토리는 외부 저장소에 있습니다. 기록되는 실제 디렉토리는 "/ storage/emulated/0/Download/test"로보고됩니다. 완벽하게 작동하는이 에뮬레이트 된 디렉토리에 파일을 쓸 때 장치가 다시 시작될 때까지 파일이 표시되지 않습니다. – eplewis89

0

많은 검색과 테스트가 끝난 후 마침내 다른 답변 중 하나를 통해 연결된 솔루션을 발견하게되었습니다.

https://stackoverflow.com/a/28448843/979220

솔루션

오히려 에뮬레이션 저장에 머무는 것보다, 외부 저장 장치에 전파 할 파일을 일으키는, 미디어 파일을 검사하는 것이 었습니다.