2011-02-11 5 views
0

Je viens de commencer à développer pour Symbian. J'utilise actuellement Nokia Qt. J'essaie de lancer une autre application basée sur le type mime. Je suis actuellement en train de suivre ce example. Je voudrais essayer d'ouvrir un fichier .txt.Comment ouvrir un fichier en utilisant RFile de Symbian?

J'ai du mal à comprendre comment créer une RFile et ce que fait réellement la classe TDesC16?

Dans l'exemple le code qui fait essentiellement le travail est le suivant:

// 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)); 

La variable AFileName doit être de type RFILE. Alors comment créer cet objet pour ouvrir un fichier .txt stocké sur Computer \ Nokia C7-00 \ Phone memory \ test.txt (dans l'Explorateur).

Répondre

1

TDesC16 est un descripteur Symbian, qui est essentiellement une chaîne. Voici un bon manuel: http://descriptors.blogspot.com/

En ce qui concerne votre problème. Dans l'exemple, il semble que aFileName soit un descripteur. Donc, pour test.txt ouvrir faire quelque chose comme ceci:

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

Si vous voulez aller avec RFILE, voici un exemple de code:

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; 
+0

Non pas que ce soit plus avec l'annonce d'aujourd'hui par Nokia, mais: il ne faut pas utiliser la macro _L() - elle a été programmée depuis longtemps pour la dépréciation. On devrait utiliser '_LIT()' autant que possible, en particulier dans le nouveau code. par exemple. '_LIT (KTestFile, "c: \ test.txt")' – Viren

Questions connexes