access_dir.pp 786 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. program access_dir;
  2. {$mode objfpc}
  3. uses
  4. nds9, fat, ctypes;
  5. var
  6. i: integer;
  7. filename: string[255];
  8. handle: P_FILE;
  9. st: stat;
  10. dir: PDIR_ITER;
  11. begin
  12. consoleDemoInit();
  13. printf('fatInit()...');
  14. if (fatInitDefault()) then
  15. begin
  16. printf(#9 + 'Success' + #10);
  17. dir := diropen('/');
  18. if (dir = nil) then
  19. iprintf ('Unable to open the directory.'#10)
  20. else
  21. begin
  22. while dirnext(dir, pchar(@filename), @st) = 0 do
  23. begin
  24. // st.st_mode & _IFDIR indicates a directory
  25. if (st.st_mode and $4000) <> 0 then
  26. iprintf ('%s: %s'#10, ' DIR', pchar(@filename))
  27. else
  28. iprintf ('%s: %s'#10, 'FILE', pchar(@filename));
  29. end;
  30. end;
  31. end else
  32. printf(#9 + 'Failure' + #10);
  33. while true do;
  34. end.