This tutorial describes the steps to generate a file name from URI.
TUriC8 provides functionality to generate a fully qualified file name from a file URI object. This function supports only URIs with file scheme.
URI path component
The path component encodes the file's location on the file system. The generic path component is of the form:
"/" [ keyword "/" ] [ drive *("/" keyword )["/" filename ]]
where,
keyword indicates path limitations. The only valid value of this is private , which indicates that the path is to be resolved relative to the application’s private directory.
drive is either the drive letter (upper or lowercase), or the term “ext-media”, indicating that the file is on a removable drive.
Examples of file names resolved from variants of URIs using TUriC8::GetFileNameL() are as follows:
File type | File URI | File name after resolving |
---|---|---|
File on a fixed drive |
file:///c/path/to/file/name.ext |
c:\path\to\file\name.ext |
File on a removable media drive |
file:///ext-media/path/to/file/name.ext |
f:\path\to\file\name.ext |
Private file on a fixed drive |
file:///private/c/path/to/file/name.ext |
c:\private\0x1001234f\path\to\file\name.ext |
Private file on a removable drive |
f ile:///private/ext-media/path/to/file/name.ext |
h:\private\0x1001234f\path\to\file\name.ext |
The following code generates the file name from the file URI provided.
//Parse the URI descriptor TUriParser8* uriComponent; _LIT8( KUriDes,"http://web.intra/Dev/SysDoc/devlib.htm" ); uriComponent->Parse( KUriDes ); // Extract the file name from the file URI HBufC* fileName = uriComponent->GetFileNameL(); //returns the string 'devlib.htm'
Another variant of TUriC8::GetFileNameL() is used to get either the full file name, only the file path or only the file name.
HBufC16* filename = HBufC* TUriC8::GetFileNameL( EUriFileNameFull )
The code returns a full file name.
Note : UriC8::GetFileNameL() can be used only for file URIs and will leave if used on any other scheme.
Other two options available are as follows:
EUriFileNamePath generates the filename containing only the path component.
For example, http://www.foo.com/MyDir/MyFiles/MyFile.doc;param1;param2 retrieves MyDir\MyFiles\MyFile.doc .
EUriFileNameTail generates the file name containing just the file name.
For example, http://www.foo.com/MyDir/MyFiles/MyFile.doc;param1;param2 retrieves MyFile.doc .
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.