2012-08-27 4 views
0

mkdirs()를 사용하여 디렉토리를 동적으로 만들려고했는데 디렉토리가 성공적으로 만들어지고 만들어진 디렉토리에 파일이 복사되었습니다. 태블릿 (xoom)에서 새 디렉토리를 볼 수도 있지만 PC에 연결하여 일부 파일을 복사하면 디렉토리가 나타나지 않습니다.Android : 동적으로 만든 디렉토리가 사용자에게 보이지 않습니다.

무엇을 할 수 있습니까?

EDT :

File dirs = new File(Environment.getExternalStorageDirectory()+"/MyDir/"); 
    dirs.mkdirs(); 

잘못 무엇인가 이 내가 한 일입니까?

EDT2 : 나는이 스레드 (http://stackoverflow.com/questions/6218572/creating-a-folder-programmatically-on-a-xoom)에서 모든 것을 시도했지만 작동하지 않았습니다. 제안?

추신 : 나는 sdcard를 다시 스캔하는 앱을 발견했습니다. 디렉토리를 만들고이 앱을 사용하면 완벽하게 작동합니다. 누구든지 sdcard를 다시 스캔하는 방법을 알고 있습니까?

+0

SD 카드에 파일/디렉토리를 저장해야 앱 데이터 폴더가 아닌 PC에 표시됩니다. –

+0

내 xoom을 다시 시작한 후 PC에 다시 연결하고 연결을 해제 한 다음 다시 연결하는 경우 내 버전 – JannGabriel

+0

을보십시오. 그쪽의 폴더가 나타납니다. 누구나 작동하는 법을 아십니까? 플레어 스래스? – JannGabriel

답변

0

내부 메모리가있는 일부 태블릿 (xoom이 포함되어 있다고 생각합니다.)과 SD 카드는 파일 저장 방법이 다릅니다. getExternalStorage는/mnt/SDCard 폴더를 가리키고 있지만 이것은 내부 메모리이므로 경로가/mnt/SDCard/SDCard (SDCard가 아는 이상)를 SDCard로 가져옵니다.

그래서 태블릿에서 SDCard의 실제 마운트를보고 Environment.getExternalStorageDirectory() 값을 확인해야합니다. 그렇지 않으면 SDCard에 저장되지 않고 태블릿 파일 시스템에 저장됩니다.

EDIT : 아마도 xoom의 미디어 드라이버에 문제가있을 수 있으며, 사용자가 PC에 마운트 할 때 sdcard를 스캔해야합니다.

당신이 분리 및 장착 할 수있는 SDCARD를 다시 검색하려면, SD 카드 또는 프로그래밍 sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory().getAbsolutePath())));

+0

흠. 내 태블릿은/mnt/externalSD에 있습니다 (externSD 또는 extSD 일 수 있습니다 - 여기서 메모리를 사용하지 마십시오). 내부 저장소는/mnt/sdcard에 있습니다. –

+0

어쩌면 JB에서 그들은 이것을 고쳤지만, HoneyComb에서 그 폴더는 그렇게 생겼습니다. –

+0

것은 .. PC에서 폴더를 만든 다음 동적으로 다른 폴더를 만들었습니다. 태블릿에서 폴더를 검색 할 때 두 디렉토리는 같은 위치에 있지만 PC에서 검색 할 때 처음 만든 폴더 만 표시하지만 동적으로 생성 된 폴더는 표시하지 않습니다. – JannGabriel

1

내가 위의 대답에 추천 된 다음 줄을 실행하여이 문제를 해결 한 전화를 새로 갤러리 응용 프로그램을 사용하여 뿐만 아니라 https://stackoverflow.com/a/8606529/2482894

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, 
Uri.parse("file://" + Environment.getExternalStorageDirectory()))); 
1

꽤 오래된 게시물에 있지만 또한 URI를 요구하지 않는 답을 추가 할 생각.

// initiate media scan and put the new things into the path array to 
// make the scanner aware of the location and the files you want to see 
MediaScannerConnection.scanFile(context, new String[] {filePath}, null, null);