private static boolean createFile( File f )
    {
        try
        {
            // create the required directories if they don't exist
            if ( !f.getParentFile().exists() )
            {
                boolean created = f.getParentFile().mkdirs(); // create the directories

                // throw an exception because the path couldn't be created
                if ( !created )
                {
                    throw new IOException( String.format( "Location %s could not be created!", f.getParentFile().getAbsoluteFile() ) );
                }
            }

            // create the file if it doesn't already exist
            if ( !f.exists() )
            {
                boolean created = f.createNewFile(); // attempt to create the file

                // throw an exception because the file couldn't be created
                if ( !created )
                {
                    throw new IOException( String.format( "File %s could not be created!", f.getAbsolutePath() ) );
                }
            }

            return true; // the file was successfully created
        }
        catch ( Exception e )
        {
            Lumberjack.throwable( "RegionIO", e );
            return false; // the file could not be created
        }
    }