Java не получает файлы в каталоге - PullRequest
0 голосов
/ 04 января 2012
    System.out.println("READ");

    String currentWorldName = "RANDOM";
    String propertiesFileDirectory = propertiesFolder + currentWorldName + "/props.properties";
    String entitiesFolderDirectory = propertiesFolder + currentWorldName + "/Entities";

    try 
    {
        properties.load(new FileInputStream(propertiesFileDirectory));
    } 

    catch (FileNotFoundException e)
    {
        //Since it doesn't exist either it was deleted by the user or hasn't been created yet.
        createNewPropertiesFile();
    } 

    catch (IOException e) 
    {
        outputToLog("IOException when loading properties file for the world: '" + currentWorldName + "'.\n" + e.getStackTrace().toString());
    }

    //getting values from properties

    //Now to read each properties file in Entities
    File entitiesFolder = new File(entitiesFolderDirectory);

    try 
    {
        List<String> entitiesDirectoryContents = Arrays.asList(entitiesFolder.list());

        //Read each file in the entities directory and load it into memory.
        for (String entityPropertiesFileName : entitiesDirectoryContents)
        {
            if (propertiesBelongsToEntityCH(entityPropertiesFileName))
            {
                                 //Get properties one way
            }

            else //The properties file we're working does not belong to CH.
            {
                //Get properties from the same file a different way
            }
        }
               //This should never be hit since we have the file to read.
    catch (FileNotFoundException e) 
    {
        outputToLog("FileNotFoundException when loading entity properties file." + e.getMessage().toString());
    } 

    //I don't know when/if this would be hit. It hasn't happened.
    catch (IOException e) 
    {
        outputToLog("IOException when loading entity properties file." + e.getMessage().toString());
    }

    catch (NullPointerException e)
     {
          entitiesFolder.mkdirs();
     }

Это работало, клянусь.Это только начало делать это.Java продолжает утверждать, что директория "entityFolder" не существует (я проверяю с помощью entityFolder.exists ()).У меня есть решение, когда это происходит, как вы можете видеть, потому что во время работы моей программы это определенно может произойти.Ну, он по-прежнему утверждает, что папка не существует, снова и снова.

Я абсолютно уверен, что это правильный каталог, потому что я печатаю "entityFolderDirectory" на консоль.Это правильно.Я также могу просматривать файлы внутри этой папки, и при запуске mkdirs () он просто удаляет их все.

Ошибка Java?Это полностью сломало мою программу.

Ответы [ 2 ]

0 голосов
/ 04 января 2012

В чем проблема с этим кодом?пропущена только одна фигурная скобка, иначе она работает нормально.

Это создаст тест dir на диске c, если его не существует, иначе он будет перечислять файлы в dir теста снова через n

String entitiesFolderDirectory = "C:\\test";
        File entitiesFolder = new File(entitiesFolderDirectory);

        try 
        {
            List<String> entitiesDirectoryContents = Arrays.asList(entitiesFolder.list());

            for (String entityPropertiesFileName : entitiesDirectoryContents)
            {
                System.out.println(entityPropertiesFileName);
            }

        }catch (NullPointerException e)
        {
            System.out.println("creating new folder");
            entitiesFolder.mkdirs();
        }
0 голосов
/ 04 января 2012

Я бы написал, не выбрасывая исключение NullPointerException.

File entitiesFolder = new File(entitiesFolderDirectory);
entitiesFolder.mkdirs();
for (String entityPropertiesFileName : entitiesFolder.list()) {
     //Do stuff
}

Это всегда будет работать, если папка не может быть создана.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...