마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 모든파일 탐색..

0 추천
  TextView text2 = (TextView) findViewById(R.id.text2);
     TextView text4 = (TextView) findViewById(R.id.text4);




   String path = Environment.getExternalStorageDirectory().toString();
   StringBuilder sb = new StringBuilder(); 
   Log.d("Files", "Path: " + path);
   File f = new File(path);        
   File file[] = f.listFiles();
   Log.d("Files", "Size: "+ file.length);
  for (int i=0; i < file.length; i++)
   {
       Log.d("Files", "FileName:" + file[i].getName());
      
      String getPath = file[i].getPath();
      text2.setText(getPath.toString());
      String filePath = getPath.substring(0, getPath.lastIndexOf(File.separator));
      text4.setText(String.valueOf(filePath.length()));
   }



이런식으로해서.. 경로(/storage/sdcard0/Netmarble)와 

파일수 (16) 을 textview로 받았는데요.

1) 여기서 왜 경로와 파일수가 저렇게 나오는거죠?



백신의 검사하기처럼 만드려고하는데요. 여러 경로를 돌아다니면서 그 디렉토리를 탐색하고, 

그에 따라 탐색한 파일수가 증가하도록 하고싶은데요...

2) 재귀호출을 사용해서.. 서로 다른경로를 탐색해야되나요..?

어떤식으로 진행해야되나요..;;





 

헬프미 (5,430 포인트) 님이 2015년 1월 21일 질문

1개의 답변

+1 추천
 
채택된 답변

String filePath = getPath.substring(0, getPath.lastIndexOf(File.separator));

text4.setText(String.valueOf(filePath.length()));

혹시 위 코드가 탐색한 파일 수를 표시하려는 부분인가요?
 
filePath 를 로그로 찍어보시면 아시겠지만, filePath 문자열의 길이를 출력하는 것으로 보입니다.
 
text4.setText 호출 직전에 한 번 찍어 보세요~
 
'파일 검사' 하는 부분의 실제 구현을 생략하고 '파일이면' 탐색한 파일 수 증가 하려 하신다면
 
멤버 변수로 카운트 할 변수를 초기값 0으로 하나 선언해 놓고
 
폴더 경로 안의 폴더/파일을 체크하면서, 파일이면 카운트를 ++ 해주는 방식으로 진행하시면 되지 않을까요?
가랑비 (10,530 포인트) 님이 2015년 1월 21일 답변
헬프미님이 2015년 1월 22일 채택됨
아 길이였군요...
카운터변수를 하나두고 폴더안에 파일이있으면 탐색해서 카운터증가 .. 될듯하네요ㅎㅎ
근데 모든폴더는 전부 어케돌죠
재귀는 알겠는데 전체경로를 전부다 어케돌죠ㅜㅜ
...