Dateiverwaltung für die WebBox
ulrich
2017-07-07 fafe1b3b2b35a3c032a367d5ed76b243f6d654a9
API fuer Listings aus der oeffentlichen Ablage hinzugefuegt
1 files added
1 files modified
73 ■■■■■ changed files
src/java/de/uhilger/filecms/api/FileMgr.java 3 ●●●● patch | view | raw | blame | history
src/java/de/uhilger/filecms/pub/Catalog.java 70 ●●●●● patch | view | raw | blame | history
src/java/de/uhilger/filecms/api/FileMgr.java
@@ -44,8 +44,7 @@
import org.apache.commons.io.FileUtils;
/**
 *
 * @author ulrich
 * Methoden zur Verwaltung von Dateien
 */
public class FileMgr extends Api {
  private static final Logger logger = Logger.getLogger(FileMgr.class.getName());
src/java/de/uhilger/filecms/pub/Catalog.java
New file
@@ -0,0 +1,70 @@
/*
    Dateiverwaltung - File management in your browser
    Copyright (C) 2017 Ulrich Hilger, http://uhilger.de
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as
    published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.
    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
package de.uhilger.filecms.pub;
import de.uhilger.filecms.api.Api;
import de.uhilger.filecms.data.Bild;
import de.uhilger.filecms.data.FileRef;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
/**
 * Methoden zur Arbeit mit Inhalten in der oeffentlichen
 * Ablage einer WebBox
 */
public class Catalog extends Api {
  private static final Logger logger = Logger.getLogger(Catalog.class.getName());
  /**
   * Inhalte der WebBox listen. Hier wird nur ausgegeben was mit
   * einer relativen Pfadangabe ausgehend von www, der oeffentlichen
   * Ablage einer WeBox, erreichbar ist.
   *
   * Andere Inhalte werden nicht ausgegeben.
   *
   * @param relPath der relative Pfad, der von www aus gelistet werden soll, ohne www
   * @return Liste der Dateien und Ordner am Ort relPath
   */
  public List<FileRef> list(String relPath) {
    Bild bild = new Bild();
    List<FileRef> files = new ArrayList();
    StringBuffer path = new StringBuffer(PUB_DIR_PATH); // www/
    path.append(relPath);
    File dir = new File(getBase().getAbsolutePath(), path.toString());
    if(dir.exists()) {
      File[] fileArray = dir.listFiles();
      for(int i = 0; i < fileArray.length; i++) {
        logger.fine(fileArray[i].toURI().toString());
        String fname = fileArray[i].toURI().toString().replace("file:/", "");
        if(fileArray[i].isDirectory()) {
          fname = fname.substring(0, fname.length() - 1);
        }
        logger.fine(fname);
        FileRef ref = new FileRef(fname, fileArray[i].isDirectory());
        ref.setMimetype(bild.getMimeType(fileArray[i]));
        files.add(ref);
      }
    }
    return files;
  }
}