Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';不要制作文件和文件夹_Java_File_Mkdir - Fatal编程技术网

Java Can';不要制作文件和文件夹

Java Can';不要制作文件和文件夹,java,file,mkdir,Java,File,Mkdir,所以我正在做一个简单的Windows资源管理器替换。我想添加创建文件夹和文件的功能。出于某种原因,它只在我的根目录或c:/folder中起作用,但只要它在其他地方(例如c:\Program Files(x86))就不起作用。我要么得到一个java.io.IOException:创建文件时拒绝访问,要么尝试创建文件夹时,没有出现异常,但没有创建文件夹 这是我的新文件代码: String location = getPath(); String name = JOptionPane.showInpu

所以我正在做一个简单的Windows资源管理器替换。我想添加创建文件夹和文件的功能。出于某种原因,它只在我的根目录或c:/folder中起作用,但只要它在其他地方(例如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,其中包含您作为文件所在的新文件夹。 创建新文件夹/文件时,我的程序使用getPath()方法询问用户当前浏览的路径

谢谢你的帮助

我的程序的图像: 试着把

String location ="c:\\user\<<youruser>>\\my documents"
String location=“c:\\user\\我的文档”

或者在您尝试执行任何I/O操作之前,只需检查您是否具有写入权限的文件夹

转到父目录(您的案例
位置

然后做一些类似的事情

File f = new File(location);

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

    }

您是在每个文件夹中还是仅在Windows系统文件夹中都遇到此错误?您很可能没有权限写入C:\Program Files(x86)。我只能将文件和文件夹添加到C:/(因此在C:/)和我的桌面“拒绝访问”:对此您有什么不明白的?我尝试了此操作,只是想看看是否有任何权限。当我尝试创建新文件或文件夹时,我实际上没有权限。因此,我尝试改为写入文档,但该文件无法写入(!f.canWrite())。我查找了我的文档的path()和absolutePath(),它们是:Documenten C:\Users\Brent\documents\Programmeren 2\nl.hz.ict.lobb009.jxplorer\:{031E4825-7B94-4DC3-B131-E946B44C8DD5}\documents.library-ms知道它为什么会这样出现吗?此外,我在原始帖子中添加了一个程序的图像,用于在文档中写入父路径类似于
C:\Users\UserName\Documents
。所以这里是
location=“C:\Users\UserName\Documents”
。然后做其他的手术。我想我还不够清楚。我的程序显示选定文件(称为currentFile,它是一个JXploreFile,包含一个文件)中所有文件夹和文件的列表。浏览文件夹时,currentFile设置为新的JXploreFile,其中包含新文件夹作为文件。创建新文件夹/文件时,我的程序使用getPath()方法询问用户当前浏览的路径。但该方法返回“C:\Users\Brent\Documents\Programmeren 2\nl.hz.ict.lobb009.jxplorer\:{031E4825-7B94-4DC3-B131-E946B44C8DD5}\Documents‌​.库ms“当您在文档中时