20169207 2016-2017-2 제13주 작업

3263 단어
android 파일 관리자: 기능 목록: 1:ListView에서 로컬의 모든 파일을 탐색할 수 있습니다.2:파일에 대한 증가(새 폴더)3:삭제(파일이나 폴더 삭제)를 실현했다.4: 변경(이름 바꾸기 및 붙여넣기 파일 복사).5:조회(현재 경로 아래의 귀속 조회).6: 정렬(listView에 표시된 파일을 시간, 크기 또는 파일 이름으로 정렬).전체적인 사고방식: 대략적인 사고방식은 먼저 현지의 모든 파일의 루트 디렉터리를 두루 훑어본 다음에 창고 구조를 이용하여 파일 경로를 저장하는 것이다. 왜냐하면 출고 입고의 특성은 사용자의 조작에 따라 저장된 파일 경로를 처리하기에 적합하기 때문이다. 그 다음에 추가 삭제와 수정의 구체적인 실현은 다음에 상세한 설명과 미리 보기 그림이 있기 때문에 총 10시간이 걸린다.임무를 완수한 것이기도 하다.실현 원리: 창고 구조를 사용하여 현재 파일 경로를 저장하고 폴더를 클릭할 때마다 현재 파일 이름을 창고에 밀어넣어 새로운 파일 경로를 구성한다.현재 스택 경로를 가져오는 방법:
//        String  
private String getPathString() {  
    Stack temp = new Stack<>();  
    temp.addAll(nowPathStack);  
    String result = "";  
    while (temp.size() != 0) {  
        result = temp.pop() + result;  
    }  
    return result;  
}  

item의 onItemClick 메서드에서 클릭한 파일 이름을 스택으로 밀어넣기
//        
//         
//         ,       
//             
nowPathStack.push("/" + file.getName());  
showChangge(getPathString());  

경로 변경 후의listview 파일 목록을 표시합니다.
//    data           
private void showChangge(String path) {  
    showtv.setText(path);  
    files = new File(path).listFiles();  
    data.clear();  
    for (File f : files) {  
        data.add(f);  
    }  
    files = fileAdapter.setfiledata(data);  
}  

실현 원리: 현재 경로와 다이어로그를 통해 사용자가 입력한 파일 이름에 따라 새 폴더를 실행합니다.
 
/** 
 *        
 */  
private void doCreateNewFolder() {  
    mydialog = new AlertDialog.Builder(MainActivity.this).create();  
    mydialog.show();  
    mydialog.getWindow().setContentView(R.layout.newfloder_dialog);  
    mydialog.setView(new EditText(MainActivity.this));  
    //                 
    mydialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);  
    mydialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);  
    newfloder_name = (EditText) mydialog.getWindow().findViewById(R.id.newfloder_name);  
  
    mydialog.getWindow()  
            .findViewById(R.id.newfloder_cancle)  
            .setOnClickListener(new View.OnClickListener() {  
                @Override  
                public void onClick(View v) {  
                    mydialog.dismiss();  
                }  
            });  
    mydialog.getWindow()  
            .findViewById(R.id.newfloder_create)  
            .setOnClickListener(new View.OnClickListener() {  
                @Override  
                public void onClick(View v) {  
                    String name =  newfloder_name.getText().toString();  
                    if (name != null) {  
                        File folder = new File(getPathString() + "/" + name);  
                        folder.mkdirs();  
                        if (folder.exists()) {  
                            Toast.makeText(MainActivity.this,"  :"+name + "     ",Toast.LENGTH_SHORT).show();  
                            showChangge(getPathString());  
                            mydialog.dismiss();  
                        }  
                    }  
  
                }  
            });  
}  

이것은 그 중 일부 기능의 핵심 코드를 표시하는 것이다.

좋은 웹페이지 즐겨찾기