使用Java在Ubuntu中创建目录时出错

时间:2014-02-18 03:58:10

标签: java ubuntu intellij-idea testcase create-directory

我做了一个方法的测试用例,它将调用实际的方法并执行它。

该方法用于创建目录。

以下是我的代码:

实际方法:

public String getDefaultFolderPath() {

String path = "";
        try {

            String os = System.getProperty("os.name");
            System.out.println("Os name Identified");
            if (os.toUpperCase().indexOf("WINDOWS") != -1) {
                File file = new File("C:/MARCDictionary");
                if (!file.exists()) {
                    System.out.println("11");
                    file.mkdir();
                }

                path = "C:/MARCDictionary";
            } else if (os.toUpperCase().indexOf("LINUX") != -1) {
                File file = new File("/usr/MARCDictionary");
                if (!file.exists()) {
                    System.out.println("22");
                    //file.mkdir();
                    file.createNewFile();
                }

                path = "/usr/MARCDictionary";
            } 
         } catch (Exception e) {
            e.printStackTrace();
        }

        return path;
}

测试用例:

@Test
    public void testGetDefaultFolderPath() {
        System.out.println("getDefaultFolderPath");
        Utilities instance = Utilities.getInstance();
        String expResult = "/usr/MARCDictionary";
        String result = instance.getDefaultFolderPath();
        assertEquals(expResult, result);

    }

给我一​​个错误:

getDefaultFolderPath
Os name Identified
22
java.io.IOException: Permission denied
    at java.io.UnixFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(File.java:1006)
    at NGLUtility.NGLUtilities.getDefaultFolderPath(Utilities.java:108)
    at utilities.NGLUtilitiesTest.testGetDefaultFolderPath(UtilitiesTest.java:85)

org.junit.ComparisonFailure: 
Expected :/usr/MARCDictionary

任何建议请为什么会发生这样的事情..

我正在使用UbuntuIntellij IDEA.

1 个答案:

答案 0 :(得分:1)

您的程序对/usr目录没有写入权限。您必须对此文件夹授予写入权限,或者尝试/usr中具有写入权限的其他文件夹。例如,要授予/usr的所有权限,您可以使用chmod 777 /usr

希望这有帮助