demo_system_isdir Program

Uses

Contents

Source Code


Variables

Type Attributes Name Initial
character(len=:), allocatable :: fnames(:)
integer :: i
character(len=80), parameter :: names(*) = ['/tmp            ', '/tmp/NOTTHERE   ', '/usr/local      ', '.               ', 'PROBABLY_NOT    ']

Source Code

     program demo_system_isdir
     use M_system, only : system_isdir
     use M_system, only : access=>system_access, R_OK
     use M_system, only : system_dir
     implicit none
     character(len=:),allocatable :: fnames(:)
     integer                      :: i
     character(len=80),parameter  :: names(*)=[ &
     & '/tmp            ', &
     & '/tmp/NOTTHERE   ', &
     & '/usr/local      ', &
     & '.               ', &
     & 'PROBABLY_NOT    ']
        !
        do i=1,size(names)
           write(*,*)' is ',trim(names(i)),' a directory? ', &
           & system_isdir(names(i))
        enddo
        !
        ! EXTENDED EXAMPLE: list readable non-hidden directories in
        !                   current directory
        fnames=system_dir(pattern='*') ! list all files in current directory
        ! select readable directories
        fnames=pack(fnames,system_isdir(fnames).and.access(fnames,R_OK))
        fnames=pack(fnames,fnames(:)(1:1) .ne.'.') ! skip hidden directories
        do i=1,size(fnames)
           write(*,*)' ',trim(fnames(i)),' is a directory'
        enddo
        !
     end program demo_system_isdir