如何在Android FireMonkey应用程序中获取(子)目录?

时间:2014-09-26 10:10:30

标签: android delphi debugging

我们有一个Android应用,在DocumentsPath中我们有一个名为'默认'

的子文件夹

但是,当我们从DocumentsPath中检索目录时,该文件夹不会显示。

有人知道怎么做吗?

代码如下:

procedure TdmoMain.SetupDirArray;
var
  mDirs: TStringDynArray;
begin
  RootDir := TPath.GetDocumentsPath;
  {$if defined(MSWINDOWS)}
    mDirs:=TDirectory.GetDirectories(RootDir, '[!_]*'); //on Windows no directories which start with '_'
  {$ELSE}
    mDirs:=TDirectory.GetDirectories(RootDir); 
  {$ENDIF}

  if High(mDirs)>0 then //this should be always true BUT IT IS NOT (IOW at least one subdir - album installed)
  begin
    SetHomeDir; //do some processing here
  end
  else //unfortunately it goes here
  begin
    { DEBUG CODE BEGIN }
    SetLength(mDirs, 1);
    mDirs[0]:=TPath.Combine(RootDir, 'default');
    if TDirectory.Exists(mDirs[0]) then
      ShowMessage('Puzzled!'); //this shows up!!!
    { DEBUG CODE END }

//    ShowMessage('You do not have any subdirectories!');
  end;
end;

我们正在使用Delphi XE6。

1 个答案:

答案 0 :(得分:0)

固定。

问题出在if High(mDirs)>0,一个目录返回 False

高(mDirs)是数组中最高元素的索引,对于具有一个元素的动态数组,该索引应为Length(mDirs)>0

谢谢大家。