Как вы открываете файл, используя RFile Symbian? - PullRequest
0 голосов
/ 11 февраля 2011

Я только начал разрабатывать для Symbian.В настоящее время я использую Nokia Qt.Я пытаюсь запустить другое приложение, основанное на типе пантомимы.В настоящее время я слежу за этим примером .Я хотел бы попытаться открыть файл .txt.

Мне трудно понять, как создать RFile и чем на самом деле является класс TDesC16?

В следующем примере код, который в основном выполняет работу:

// Gets the UID and MIME type for the given file name.
TUid uid;
TDataType dataType;
User::LeaveIfError(session.AppForDocument(aFileName, uid, dataType));

// Runs the default application using the MIME type, dataType.
// You can also use the UID to run the application. 
TThreadId threadId;
User::LeaveIfError(session.StartDocument(aFileName, dataType, threadId));

Переменная aFileName должна иметь тип RFile.Итак, как мне создать этот объект, чтобы открыть файл .txt, хранящийся в папке Computer \ Nokia C7-00 \ Phone memory \ test.txt (в Проводнике).

1 Ответ

1 голос
/ 11 февраля 2011

TDesC16 - дескриптор Symbian, который в основном является строкой. Вот хорошее руководство: http://descriptors.blogspot.com/

Что касается вашей проблемы. В примере это выглядит так, как будто aFileName является дескриптором. Итак, чтобы открыть test.txt, сделайте что-то вроде этого:

TThreadId threadId;
User::LeaveIfError(session.StartDocument(_L("c:\test.txt"), dataType, threadId));

Если вы хотите использовать RFile, вот пример кода:

RFs fs;
User::LeaveIfError(fs.Connect()); // connect to File Server
CleanupClosePushL(fs); // adding to the cleanup stack to ensure that the resources are released properly if a leave occurres while opening a file

RFile file;
User::LeaveIfError(file.Open(fs, _L("c:\test.txt"), EFileRead));
CleanupClosePushL(file);

// do something with file

CleanupStack::PopAndDestroy(2); // closes file and fs and removes them from the cleanup stack;
...