|
||
theFs
represents a session with the file
server.
RFs theFs;
CFileStore* theStore;
TParse fileStoreName;
TBufC<28> name(_L("C:\\Documents\\richtxt.dat"));
TStreamId streamId;
A session with the file server must be opened before file-related
operations are carried out. Use RFs::Connect()
to open a session
with the file server.
Call StoreL()
on the CRichText
object to externalise the text object
to a CFileStore
. The stream in which the text is stored is
identified by its ID. This will later be used to restore the rich text.
Call Close()
on the RFs
object to close the file as well as the file
server session.
// Store text to a file store
theFs.Connect();
theFs.Parse(name,fileStoreName);
theStore=CDirectFileStore::ReplaceLC
(theFs,fileStoreName.FullName(),EFileRead|EFileWrite);
theStore->SetTypeL(KDirectFileStoreLayout);
// externalize the rich text
streamId=iRichText->StoreL(*theStore); // Store and get ID
CleanupStack::PopAndDestroy(); // pop and destroy store
theFs.Close();
The following example restores the text object by calling
RestoreL()
on the CRichText
object, specifying the file store and the ID of the
stream in which the rich text is stored.
The file is opened for reading only.
// Restore text from file store
theFs.Connect();
theFs.Parse(name,fileStoreName);theStore=CDirectFileStore::OpenLC
(theFs,fileStoreName.FullName(),EFileRead|EFileShareReadersOnly);
if (theStore->Type()[0]!=KDirectFileStoreLayout)
User::Leave(KErrUnknown);
// internalize from the store
RichText->RestoreL(*theStore,streamId);
CleanupStack::PopAndDestroy(); // pop and destroy store
theFs.Close();