在我的程序中创建新文件夹时,我遇到了一个小小的意外问题。这是我创建目录的方法:
public void createDirectory() {
directory = new File("C:/Users/Lotix/Desktop/TestFolder/"
+ categoryName);
boolean isDirectoryCreated = directory.mkdir();
if (isDirectoryCreated) {
System.out.println("Created new directory in: " + directory);
} else if (directory.exists()) {
System.out.println("Category already exists!");
}
}
这是我调用该方法的监听方法:
if (e.getSource() == addButton) {
System.out.println("Add Button Clicked");
botTextArea.setText("");
botTextArea.append("Adding new category...");
popUp.newCategoryPrompt();
System.out.println(popUp.getNewCategoryName());
Category cat = new Category(popUp.getNewCategoryName(), "test tag" );
cat.createDirectory();
}
提示方法本身:
// Prompt to enter name of the new category
public void newCategoryPrompt() {
JFrame newCatFrame = new JFrame();
newCategoryName = JOptionPane.showInputDialog(newCatFrame,
"Enter the name of new category");
}
确切的问题是什么?
程序应该在现有目录中创建一个文件夹。但是,当用户决定关闭该提示而不给新文件夹命名时,它会创建一个名为" null"的文件夹。无论即可。我该如何防止它发生?
我的临时解决方案(虽然非常草率)是让用户创建该文件夹(不管是否意外)并让它成为我的程序将打印出错误并且如果具有这样的文件夹则不会创建它该目录中的名称已存在。
编辑:按取消时会发生同样的事情。 EDIT2:添加了提示方法。答案 0 :(得分:1)
尝试
Category cat = new Category(popUp.getNewCategoryName(), "test tag" );
if(cat.getCategoryName() != null)
cat.createDirectory();
您需要将getCategoryName()更改为Category类中类别名称的getter。
答案 1 :(得分:0)
您可以尝试此操作以绕过空白和空值:
Category cat = new Category(popUp.getNewCategoryName(), "test tag" );
if(cat.getCategoryName() != null && !"".equals(cat.getCategoryName())){
cat.createDirectory();
}