我已更新我的代码以处理列出的方案 1.检查空目录 2.检查文件是否存在
当我尝试做文件计划程序时,我应该注意哪些其他事项?
我希望能够创建能够涵盖监视文件时可能发生的所有可能情况的内容,以便在部署代码时,我可以快速读取输出并知道发生了什么
package filemon;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
/**
* @author LAI XUEYANG
* @version $Revision: 1.0 $
*/
public class filemon {
/**
* Method main.
*
* @param args
* String[]
*/
public static void main(String[] args) {
// Declare yesterday date with format as yyyyMMdd
DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
// Calendar yesterdayCal = Calendar.getInstance();
// Declare today date with format as yyyyMMdd
Calendar todayCal = Calendar.getInstance();
String todayDate = dateFormat.format(todayCal.getTime());
// Declaration of folder path
File file = new File("D:\\TEST");
// Declaration of file path
Path filePath = Paths.get(file + "\\INCIF" + todayDate + ".txt");
// yesterdayCal.add(Calendar.DATE, -1);
// String yesterdayDate = dateFormat.format(yesterdayCal.getTime());
try {
checkEmptyDirectory(file, filePath);
} catch (Exception e) {
System.out.println(e);
}
// checkFileExist();
}
/**
* Method checkFileExist.
*
* @param filePath
* Path
*/
private static void checkFileExist(Path filePath) {
if (Files.exists(filePath)) {
System.out.println("Filename: " + filePath.toString());
System.out.println("Exist in location!");
} else {
System.out.println("Filename: " + filePath.toString());
System.out.println("Does not exist in location!");
}
}
/**
* Method checkEmptyDirectory.
*
* @param file
* File
* @param filePath
* Path
*/
private static void checkEmptyDirectory(File file, Path filePath) {
if (file.isDirectory()) {
if (file.list().length > 0) {
checkFileExist(filePath);
} else {
System.out
.println("Directory specified does not contain any files!");
}
} else {
System.out.println("Directory specified does not exist!");
}
}
}
答案 0 :(得分:3)
为了找到文件夹中的任何文件,请尝试这样做
File f= new File(filePathString);
File[] listOfFiles = f.listFiles();
if(listOfFiles.length > 0){
//
}else{
//
}
答案 1 :(得分:1)
使用 java.io.File
File f = new File(filePathString);
if(f.exists()) { /* do something */ }
在您的代码中:
File f = new File(filePath);
if(f.exists()) {
if(f.isDirectory()){ System.out.println("it's a folder"); }
System.out.println("File location: " +filePath.toString());
System.out.println("File exist in location!");
System.exit(0);
}
答案 2 :(得分:1)
导入 java.io. *;
File file = new File(Path);
if(file.exists()){.........}
答案 3 :(得分:0)
使用File#list()计算列出的文件:
File f = new File(filePathString);
int nOF = f.list().length; //add null check before
返回一个字符串数组,用于命名文件和目录 此抽象路径名表示的目录。如果是这个抽象路径名 不表示目录,则此方法返回null。除此以外 返回一个字符串数组,每个文件或目录对应一个 目录。表示目录本身和目录的名称 父目录不包含在结果中。每个字符串都是一个文件 名字而不是完整的路径。
答案 4 :(得分:0)
这应该这样做 http://www.mkyong.com/java/how-to-check-if-directory-is-empty-in-java/
public static void main(String[] args)
{
File file = new File("\myFolder");
if(file.isDirectory()){
if(file.list().length>0){
System.out.println("Directory is not empty!");
}else{
System.out.println("Directory is empty!");
}
}else{
System.out.println("This is not a directory");
}
}
答案 5 :(得分:0)
这里
"C:\\TEST" +todayDate +".txt"
您错过了文件夹分隔符。应该是:
"C:\\TEST\\" +todayDate +".txt"
答案 6 :(得分:0)
我认为这可能会帮助您检查文件夹中是否存在文件!
File folder = new File("/home/rahul/Documents/r/212/");
f.listFilesForFolder(folder);
}
public void listFilesForFolder(final File folder) {
for (final File fileEntry : folder.listFiles()) {
if (fileEntry.isDirectory()) {
listFilesForFolder(fileEntry);
} else {
l.add(fileEntry.getName());
}
}
如果文件夹中存在文件,我的代码将获取目录中可用文件的名称。