Dateiverwaltung für die WebBox
Ulrich
2020-11-20 9778400996a77ca6118c4ed6857d9ced33dcf14b
src/java/de/uhilger/filecms/api/FileMgr.java
@@ -37,7 +37,9 @@
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.nio.charset.Charset;
import java.security.Principal;
import java.util.ArrayList;
import java.util.Arrays;
@@ -194,8 +196,8 @@
        try {
          File targetFile = new File(getTargetDir(relPath), fileName);
          //reader = new InputStreamReader(new FileInputStream(targetFile), "UTF8");
          reader = new FileReader(targetFile);
          reader = new InputStreamReader(new FileInputStream(targetFile), "UTF8");
          //reader = new FileReader(targetFile);
          StringBuffer buf = new StringBuffer();
          char[] readBuffer = new char[1024];
          int charsRead = reader.read(readBuffer);
@@ -354,7 +356,12 @@
              }
            } else {
              if(operation == OP_MOVE) {
                FileUtils.moveFileToDirectory(srcFile, targetDir, false);
                String fname = srcFile.getName().toLowerCase();
                if(fname.endsWith(TNServlet.JPEG) || fname.endsWith(TNServlet.JPG) || fname.endsWith(TNServlet.PNG)) {
                  moveImgFilesToDirectory(srcFile, srcDir, targetDir, false);
                } else {
                  FileUtils.moveFileToDirectory(srcFile, targetDir, false);
                }
              } else {
                FileUtils.copyFileToDirectory(srcFile, targetDir);              
              }
@@ -366,6 +373,20 @@
      logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex);
    }
    return result;
  }
  private void moveImgFilesToDirectory(File srcFile, File srcDir, File targetDir, boolean createDestDir) throws IOException {
    String fnameext = srcFile.getName();
    int dotpos = fnameext.lastIndexOf(DOT);
    String fname = fnameext.substring(0, dotpos);
    String ext = fnameext.substring(dotpos);
    logger.fine("fname: " + fname + ", ext: " + ext);
    FileFilter fileFilter = new WildcardFileFilter(fname + "*" + ext);
    File[] files = srcDir.listFiles(fileFilter);
    for (int i = 0; i < files.length; i++) {
      logger.fine(files[i].getName());
      FileUtils.moveFileToDirectory(files[i], targetDir, createDestDir);
    }
  }
  
  public FileRef saveTextFileAs(String relPath, String fileName, String contents) {
@@ -418,7 +439,7 @@
    FileRef savedFile = null;
    try {
      targetFile.createNewFile();
      FileWriter w = new FileWriter(targetFile);
      FileWriter w = new FileWriter(targetFile, Charset.forName("UTF-8"));
      //w.write(StringEscapeUtils.unescapeHtml(contents));
      w.write(contents);
      w.flush();