无法制作文件和文件夹

时间:2015-03-28 17:02:03

标签: java file mkdir

所以我正在开发一个简单的Windows资源管理器替代品。我想添加创建文件夹和文件的功能。出于某种原因,它只适用于我的root或c:/文件夹,但只要它在其他地方(例如C:\ Program Files(x86))它就不会出现这种情况。工作。我要么得到一个java.io.IOException:当我创建一个文件时拒绝访问,当我尝试创建一个文件夹时,没有出现异常,但没有创建文件夹。

这是我的新文件代码:

String location = getPath();
String name = JOptionPane.showInputDialog("Fill in the name of the new file. \nDon't forget to add file type (.txt, .pdf).", null);
if(name == null){

}
else {
    File newFile = new File(location + "\\" + name);
    boolean flag = false;
    try {
        flag = newFile.createNewFile();
    } catch (IOException Io) {
        JFrame messageDialog = new JFrame("Error!");
        JOptionPane.showMessageDialog(messageDialog, "File creation failed with the following reason: \n" + Io);
        }
    }

这是我的新文件夹代码:

String location = getPath();
String name = JOptionPane.showInputDialog("Fill in the name of the new folder.", null);
if(name == null){

}
else {
    File newFolder = new File(location + "\\" + name);
    boolean flag = false;
    try {
        flag = newFolder.mkdir();
    } catch (SecurityException Se) {
        JFrame messageDialog = new JFrame("Error!");
        JOptionPane.showMessageDialog(messageDialog, "Folder creation failed with the following reason: \n" + Se);
        }
    }

我现在卡住了,我不知道我做错了什么来摆脱拒绝访问的错误。

简要说明该程序的工作原理: 我的程序显示所选文件中所有文件夹和文件的列表。 该文件是JXploreFile类中的一个字段,名为" currentFile",其行为与文件几乎相同。 浏览文件夹时,currentFile设置为新的JXploreFile,其中包含您作为File的新文件夹。 创建新文件夹/文件时,我的程序会使用方法getPath()询问用户当前正在浏览的路径。

感谢您的帮助!

我的节目图片: Image of my program

2 个答案:

答案 0 :(得分:1)

在尝试进行任何I / O操作之前,只需检查您是否拥有权限

转到父目录(您的案例location

然后执行类似

的操作
File f = new File(location);

    if(f.canWrite()) {
            /*your full folder creation code here */
    } else {

    }

答案 1 :(得分:0)

尝试放

String location ="c:\\user\<<youruser>>\\my documents"

或具有完全写入权限的文件夹