delphi xe 在Andriod程序中获取外置SD卡根目录


本文整理自网络,侵删。

 我们知道,Andriod是基于Linux的,所以正常的存贮设备都被挂载到/mnt目录下,我们查找SD卡根目录就是要在下面找到那个卡是外置的SD卡,但遗憾的是,目前没有一种标准的方法来做到这一点(包括Andriod本身)。下面我为大家提供了一个函数来完成这一功能:


function GetExtSDDir: String;
  var
    AList: TStringDynArray;
    S: String;
    I, J, ALastNo, ANo: Integer;
  const
    ExtSDCardNames: array [0 .. 7] of String = ('/mnt/ext_sdcard',
      '/mnt/extsd',
      '/mnt/ext_card',
      '/mnt/external_sd',
      '/mnt/ext_sd',
      '/mnt/external',
      '/mnt/extSdCard',
      '/mnt/externalSdCard'
      );
  begin
  Result :'';
  AList := TDirectory.GetDirectories('/mnt');
  ALastNo :0;
  for I :0 to High(AList) do
    begin
    S := AList[I];
    for J :0 to High(ExtSDCardNames) do
      begin
      if S = ExtSDCardNames[J] then
        begin
        Result := S + '/';
        Exit;
        end
      end;
    if StartWithW(PWideChar(S),'/mnt/sdcard', False) then
      begin
      if TryStrToInt(RightStrW(AList[I], Length(AList[I]) - 11, False), ANo)
      then
        begin
        if ANo > ALastNo then
          begin
          ALastNo := ANo;
          Result := AList[I] + '/';
          end;
        end;
      end;
    end;
  end;
这个函数使用了QString.pas单元的StartWithW和RightStrW两个函数,TDirectory对象需要引入ioutils单元。ExtSDCardNames常量定义了目前已经的SD卡根目录的挂载名称,可能还有更多,如果你发现了,可以随时补充就好。在找不到上述关键词时,会尝试搜索sdcard1/sdcard2这样的目录,并取其中最大的那个值为SD卡的根目录。

相关阅读 >>

Delphi获取u盘序列号的代码

Delphi 映像劫持编辑器

Delphi2010的操作界面切换到Delphi7的操作模式

Delphi 获取文件夹路径最后一级文件夹目录名称

Delphi中webbrowser问题集锦

Delphi runasadmin 运行程序并申请管理员权限

Delphi 文本列数值排序从小到到

Delphi2010获取鼠标指向窗口的位置及鼠标在窗口内的相对位置坐标

Delphi rest api post sample

Delphi2010显示选择文件夹对话框 (有新建按钮)

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    暂无评论...