def create_file(self, share_name, directory_name, file_name,<EOL>content_length, content_settings=None, metadata=None, <EOL>timeout=None):
_validate_not_none('<STR_LIT>', share_name)<EOL>_validate_not_none('<STR_LIT>', file_name)<EOL>_validate_not_none('<STR_LIT>', content_length)<EOL>request = HTTPRequest()<EOL>request.method = '<STR_LIT>'<EOL>request.host_locations = self._get_host_locations()<EOL>request.path = _get_path(share_name, directory_name, file_name)<EOL>request.query = { '<STR_LIT>': _int_to_str(timeout)}<EOL>request.headers = {<EOL>'<STR_LIT>': _to_str(content_length),<EOL>'<STR_LIT>': '<STR_LIT:file>'<EOL>}<EOL>_add_metadata_headers(metadata, request)<EOL>if content_settings is not None:<EOL><INDENT>request.headers.update(content_settings._to_headers())<EOL><DEDENT>self._perform_request(request)<EOL>
Creates a new file.

See create_file_from_* for high level functions that handle the
creation and upload of large files with automatic chunking and
progress notifications.

:param str share_name:
    Name of existing share.
:param str directory_name:
    The path to the directory.
:param str file_name:
    Name of file to create or update.
:param int content_length:
    Length of the file in bytes.
:param ~azure.storage.file.models.ContentSettings content_settings:
    ContentSettings object used to set file properties.
:param metadata:
    Name-value pairs associated with the file as metadata.
:type metadata: a dict mapping str to str
:param int timeout:
    The timeout parameter is expressed in seconds.