Đâ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:
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.