Android Open Source - file-browser Local File System






From Project

Back to project page file-browser.

License

The source code is released under:

Copyright (c) 2014, Hyusein Gyulyustan All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are m...

If you think the Android project file-browser listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.hglstn.filebrowser;
/*w  w  w .jav a 2  s .  c o m*/
import java.io.File;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.LinkedList;
import java.util.List;

public class LocalFileSystem implements FileSystem {

  @Override
  public List<FileInfo> list(String directoryPath) {
    File file = new File(directoryPath);
    if (!file.isDirectory()) {
      throw new IllegalArgumentException(
          "The specified file is not directory");
    }

    List<FileInfo> files = new LinkedList<FileInfo>();
    File[] children = file.listFiles();
    if (children == null) {
      return files;
    }

    for (File child : file.listFiles()) {
      int grandChildrenCount = 0;
      if (child.isDirectory()) {
        File[] grandChildren = child.listFiles();
        if (grandChildren != null) {
          grandChildrenCount = grandChildren.length;
        }
      }
      files.add(new FileInfo(child.getAbsolutePath(),
          getPermissions(child), getLastModifiedTime(child), child
              .isDirectory(), grandChildrenCount, !child
              .isDirectory() ? child.length() : -1));
    }

    return files;
  }

  private Calendar getLastModifiedTime(File file) {
    long lastModified = file.lastModified();
    Calendar calendarLastModifed = new GregorianCalendar();
    calendarLastModifed.setTimeInMillis(lastModified);
    return calendarLastModifed;
  }

  private String getPermissions(File file) {
    StringBuilder permissions = new StringBuilder();
    if (file.isDirectory()) {
      permissions.append('d');
    } else {
      permissions.append('-');
    }

    if (file.canRead()) {
      permissions.append('r');
    } else {
      permissions.append('-');
    }

    if (file.canRead()) {
      permissions.append('w');
    } else {
      permissions.append('-');
    }

    return permissions.toString();
  }
}




Java Source Code List

com.hglstn.filebrowser.FileBrowserFragment.java
com.hglstn.filebrowser.FileInfoAdapter.java
com.hglstn.filebrowser.FileInfo.java
com.hglstn.filebrowser.FileSystem.java
com.hglstn.filebrowser.LocalFileSystem.java
com.hglstn.filebrowser.MainActivity.java