zoukankan      html  css  js  c++  java
  • 得到文件路径信息 TParse

    得到文件路径信息 TParse

    上面根据 DriveList 及 Drive 方法可以得到驱动信息信息

    • DriveList 需要 CDir 对像保存列表,CDir 中的每一个数据都是 TEntry 类型的,所以根据 TEntry 可以得到驱动器及文件的信息
    • Drive()方法根据传入的参数得到 TDriveInfo 信息,根据 TDriveInfo 可以得到 iDriveAtt,iMediaAtt,iType,iBattery 属性,
      在 sdk 中查询得到详细说明,进而得到驱动器信息
    • Volume() 方法可以得到 TVolumeInfo ,这个能得到驱动器的大小及可用空间,名字等信息(名字在模拟器上得不到,不知为什么)
    • 得到一个目录是否存在可以通过下面的代码实现
      TInt err=fsSession.MkDir(KMessage3);
       
      if (err!=KErrAlreadyExists)  // Don't leave if it already exists
        User::LeaveIfError(err);

    现在需要解析一个带有全路径的文件该怎么办?
    可以使用 TParse 对像,使用  Parse对像时,先要通过 Set 方法去赋于一个全路径的字符串,然后通过 FullName(),Drive(),Path(),Ext(),Name()
    分别得到 全名,所在驱动器名,路径,扩展名及名字

    请看以下示例

    void parseNames(const TDesC& aFileName);
    void fileNames()
    {
        _LIT(KFuncName,
    "\nDoParsing()\n");
        console
    ->Printf(KFuncName);
        _LIT(KParse1,
    "d:\\path\\fn.ext");
        parseNames(KParse1);
        _LIT(KParse2,
    "autoexec.bat");
        parseNames(KParse2);
        _LIT(KParse3,
    "c:readme");
        parseNames(KParse3);
        _LIT(KParse4,
    "c:\\include\\stdio.h");
        parseNames(KParse4);
        _LIT(KParse5,
    ".prof.ile");
        parseNames(KParse5);
        _LIT(KParse6,
    "autoexec.*");
        parseNames(KParse6);
    }
    void parseNames(const TDesC& aFileName)
    {
        User::LeaveIfError(ifs.Connect());
        _LIT(KFullName,
    "Full name=%S\n");
        _LIT(KPathComponents,
    "Dirve=%S path=%S name=%S ext=%S\n");
        _LIT(KFullNameText,
    "full name against session path=%S\n");
        _LIT(KExtension,
    ".txt");
        _LIT(KParsePath,
    "FullName against session path and default extension .txt=%S\n");
        TParse p;
        User::LeaveIfError(p.Set(aFileName,NULL,NULL));
        console
    ->Printf(KFullName,&p.FullName());
        TFileName driveName(p.Drive());
        TFileName pathname(p.Path());
        TFileName filename(p.Name());
        TFileName extension(p.Ext());
        console
    ->Printf(KPathComponents,&driveName,&pathname,
            
    &filename,&extension);
        User::LeaveIfError(ifs.Parse(aFileName,KExtension,p));
        console
    ->Printf(KParsePath,&(p.FullName()));
        ifs.Close();
    }

    示例代码来自于 sdk 例子,代码可是我一点点敲上去的



    安平2009@原创
    qi_jianzhou@126.com

  • 相关阅读:
    周星驰影片经典台词之《大话西游》
    周星驰影片经典台词之《唐伯虎点秋香》
    “喝酒脸红”并不是能喝酒的表现
    hereim_美句_2
    sql查询表N到M行的数据,查询表内最新标识列
    CSS半透明背景 文字不透明
    jquery最简单的右侧返回顶部代码(滚动才出现)
    大渝网招聘页面用到的 滚动后固定代码
    OFBiz应用https与http方式访问切换
    [ofbiz]解决load-demo花费过长时间的问题
  • 原文地址:https://www.cnblogs.com/zziss/p/1651157.html
Copyright © 2011-2022 走看看