Programming/Android

[Android] 안드로이드 파일 목록 가져오기

쌍쌍바나나 2016. 4. 24. 17:06
반응형

들어가며

안드로이드 ListActivity에 Download폴더 내부에 있는 파일의 리스트를 보여주는 예제 입니다.


Manifest에 파일 읽는 권한을 추가합니다.

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>


구현하기


public class FileList extends ListActivity 
{
private File file;
private List myList;

public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);

    myList = new ArrayList();   

    String rootSD = Environment.getExternalStorageDirectory().toString();
    file = new File( rootSD + "/Download" ) ;       
    File list[] = file.listFiles();

    for( int i=0; i<list.length; i++)
    {
            myList.add( list[i].getName() );
    }

    setListAdapter(new ArrayAdapter(this,
            android.R.layout.simple_list_item_1, myList ));

}

protected void onListItemClick(ListView l, View v, int position, long id) 
{
    super.onListItemClick(l, v, position, id);

    File temp_file = new File( file, myList.get( position ) );  

    if( !temp_file.isFile())        
    {
        file = new File( file, myList.get( position ));
        File list[] = file.listFiles();

        myList.clear();

        for( int i=0; i< list.length; i++)
        {
            myList.add( list[i].getName() );
        }
        Toast.makeText(getApplicationContext(), file.toString(), Toast.LENGTH_LONG).show(); 
        setListAdapter(new ArrayAdapter(this,
                android.R.layout.simple_list_item_1, myList ));

    }

}


@Override
public void onBackPressed() {
            String parent = file.getParent().toString();
            file = new File( parent ) ;         
            File list[] = file.listFiles();

            myList.clear();

            for( int i=0; i< list.length; i++)
            {
                myList.add( list[i].getName() );
            }
            Toast.makeText(getApplicationContext(), parent,          Toast.LENGTH_LONG).show(); 
            setListAdapter(new ArrayAdapter(this,
                    android.R.layout.simple_list_item_1, myList ));


    }
}


반응형