package org.pentaho.platform.dataaccess.datasource.wizard.csv;
import java.io.File;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.pentaho.platform.dataaccess.datasource.wizard.models.FileInfo;
import org.pentaho.platform.dataaccess.datasource.wizard.service.impl.utils.PentahoSystemHelper;
import org.pentaho.platform.engine.core.system.PentahoSystem;
import org.pentaho.platform.util.messages.LocaleHelper;
public class FileUtils {
public static final String DEFAULT_RELATIVE_UPLOAD_FILE_PATH = File.separatorChar + "system" + File.separatorChar + "metadata" + File.separatorChar + "csvfiles" + File.separatorChar; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
static {
PentahoSystemHelper.init();
}
public FileInfo[] listFiles() {
List<FileInfo> fileList = new ArrayList<FileInfo>();
String relativePath = PentahoSystem.getSystemSetting("file-upload-defaults/relative-path", String.valueOf(DEFAULT_RELATIVE_UPLOAD_FILE_PATH)); //$NON-NLS-1$
String path = PentahoSystem.getApplicationContext().getSolutionPath(relativePath);
File folder = new File(path);
if (folder.exists()) {
File files[] = folder.listFiles();
for (File file : files) {
String name = file.getName();
if(file.isFile()) {
long lastModified = file.lastModified();
DateFormat fmt = LocaleHelper.getShortDateFormat(true, true);
Date modified = new Date();
modified.setTime(lastModified);
String modifiedStr = fmt.format(modified);
long size = file.length();
FileInfo info = new FileInfo();
info.setModified(modifiedStr);
info.setName(name);
info.setSize(size);
fileList.add(info);
}
}
}
return fileList.toArray(new FileInfo[fileList.size()]);
}
public Boolean deleteFile(String aFileName) {
boolean result = false;
String relativePath = PentahoSystem.getSystemSetting(
"file-upload-defaults/relative-path", String.valueOf(FileUtils.DEFAULT_RELATIVE_UPLOAD_FILE_PATH)); //$NON-NLS-1$
String path = PentahoSystem.getApplicationContext().getSolutionPath(relativePath);
File file = new File(path + File.separatorChar + aFileName);
if (file.exists()) {
result = file.delete();
}
return result;
}
}