Sunday, April 27, 2014

Simple file manager for Android

Đây là chương trình đơn giản giúp bạn quản lý các file có trong sdcard của thiết bị Android

Các chức năng chính của chương trình gồm có:
  • Hiển thị các file có trong sdcard theo dạng danh sách.
  • Cho phép người dùng thực hiện các thao tác như cut, copy, delete trên một hoặc nhiều file
Bạn có thể tải source code chương trình tại đây.

Một số điểm đáng chú ý trong chương trình:

  • Các bạn cần phải khai báo permission trong file Manifest để có thể tương tác được với sdcard

  • Thuật toán đệ quy:
public void copyFolder(File src, File dest) throws IOException {
  if (src.isDirectory()) {
   if (!dest.exists()) {
    dest.mkdir();
   }
   String[] files = src.list();
   for (String file : files) {
    File srcFile = new File(src, file);
    File destFile = new File(dest, file);
    copyFolder(srcFile, destFile);
   }
  } else {
   InputStream in = new FileInputStream(src);
   OutputStream out = new FileOutputStream(dest);
   byte[] buffer = new byte[1024];
   int length;
   while ((length = in.read(buffer)) > 0) {
    out.write(buffer, 0, length);
   }
   in.close();
   out.close();
  }
 }
Để copy 1 folder ta phải copy toàn bộ file của nó, đối với các subfolder ta cũng tiến hành làm tương tự, vì vậy để giải quyết bài toán này ta sử dụng thuật toán đệ quy như trên.

Chúng ta cũng sử dụng thuật toán đệ quy để delete 1 folder.

  • Toàn bộ các function của chương trình đều chạy trên UIThread, điều này khiến chương trình không được mượt mà, nhất là khi các bạn copy, cut, delete các file có kích thước lớn, vì vậy các bạn hãy sũy nghĩ cách sử dụng Multithreading để cải tiến chương trình.


6 comments:

  1. em muon hoi tai sao em import source code vo ma bi mat file R? Em cung cai thu vien actionbar theo dung huong dan roi ma em them thu vien vo trong phan propertise no ko nhan, cu bao loi nhung cho nao lien quan den action bar?

    ReplyDelete
    Replies
    1. Đây là lỗi do em thiếu support library, em có thể tìm hiểu cách import support library tại đây http://developer.android.com/tools/support-library/setup.html, em để ý chỗ setup support library v7 ấy nhé :)

      Delete
    2. Em lam y chang nhu trong do noi luon roi.

      Delete
  2. thầy cho em hỏi buổi kiểm tra mình có được sử dụng tài liệu là file text trong usb ko? hay la bắt buộc phải là tài liệu in?

    ReplyDelete
    Replies
    1. Em co' the dung tai lieu trong usb cung dc, nhung khong duoc copy file source vao`

      Delete
    2. vay la chi duoc vua nhin vua go lai, chu ko duoc copy paste ha thay?

      Delete