Как определить, что каталог является каталогом, а не файлом ?
Накидал рабочий код (основаный на методе IsFolder, объекта Shell.Application), но не уверен, что он надежный.
Есть ли что - нибудь подобное в WinApi или быть может существует другой способ определить, что папка является папкой, а файл файлом.
Накидал рабочий код (основаный на методе IsFolder, объекта Shell.Application), но не уверен, что он надежный.
Код:
$oMyError = ObjEvent("AutoIt.Error","MyErrFunc")
$sFolder = "C:\Windows"
$IsFolder = _IsFolder($sFolder)
If $IsFolder = 1 Then
ConsoleWrite($sFolder & " является папкой" & @CRLf )
Else
ConsoleWrite($sFolder & " не является папкой" & @CRLf)
EndIf
Func _IsFolder($sPathIsFolder)
$objShell = ObjCreate("Shell.Application")
If IsObj($objShell) Then
$objFolder = $objShell.NameSpace($sPathIsFolder)
If Not IsObj($objFolder) Then
$bStatus = 0
Return $bStatus
Else
$objFolderItem = $objFolder.Self
If IsObj($objFolderItem) Then
$bReturn = $objFolderItem.IsFolder
If $bReturn = True Then
$bStatus = 1
Return $bStatus
Else
$bStatus = 0
Return $bStatus
EndIf
EndIf
EndIf
EndIf
Endfunc
Func MyErrFunc()
$HexNumber=hex($oMyError.number,8)
ConsoleWrite("filled" & @CRLf)
Endfunc
Есть ли что - нибудь подобное в WinApi или быть может существует другой способ определить, что папка является папкой, а файл файлом.