Inspiration was taken from here & MSDN >> http://www.autoitscript.com/forum/topic/124861-how-i-detect-binary-file-of-text-file/page__pid__866935#entry866935
#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 Global $sFile = FileOpenDialog("Select A File To Find The Filename & Extension", @ScriptDir, "(*.*)") If @error Then Exit EndIf ;~ Example File - C:\Program Files\AutoIt\AutoIt.exe ConsoleWrite(_GetFilename($sFile) & @CRLF) ; Gets Filename - AutoIt ConsoleWrite(_GetFilenameExt($sFile) & @CRLF) ; Gets Filename Extension - exe ConsoleWrite(_GetFilenameInt($sFile) & @CRLF) ; Gets Initial Filename - C:\Program Files\AutoIt\AutoIt.exe ConsoleWrite(_GetFilenamePath($sFile) & @CRLF) ; Gets Path - \Program Files\AutoIt\ ConsoleWrite(_GetFilenameDrive($sFile) & @CRLF) ; Gets Drive - C: Func _GetFilename($sFilePath) Local $oWMIService = ObjGet("winmgmts:{impersonationLevel = impersonate}!\\" & "." & "\root\cimv2") Local $oColFiles = $oWMIService.ExecQuery("Select * From CIM_Datafile Where Name = '" & StringReplace($sFilePath, "\", "\\") & "'") If IsObj($oColFiles) Then For $oObjectFile In $oColFiles Return $oObjectFile.FileName Next EndIf Return SetError(1, 1, 0) EndFunc ;==>_GetFilename Func _GetFilenameExt($sFilePath) Local $oWMIService = ObjGet("winmgmts:{impersonationLevel = impersonate}!\\" & "." & "\root\cimv2") Local $oColFiles = $oWMIService.ExecQuery("Select * From CIM_Datafile Where Name = '" & StringReplace($sFilePath, "\", "\\") & "'") If IsObj($oColFiles) Then For $oObjectFile In $oColFiles Return $oObjectFile.Extension Next EndIf Return SetError(1, 1, 0) EndFunc ;==>_GetFilenameExt Func _GetFilenameInt($sFilePath) Local $oWMIService = ObjGet("winmgmts:{impersonationLevel = impersonate}!\\" & "." & "\root\cimv2") Local $oColFiles = $oWMIService.ExecQuery("Select * From CIM_Datafile Where Name = '" & StringReplace($sFilePath, "\", "\\") & "'") If IsObj($oColFiles) Then For $oObjectFile In $oColFiles Return $oObjectFile.Name Next EndIf Return SetError(1, 1, 0) EndFunc ;==>_GetFilenameInt Func _GetFilenameDrive($sFilePath) Local $oWMIService = ObjGet("winmgmts:{impersonationLevel = impersonate}!\\" & "." & "\root\cimv2") Local $oColFiles = $oWMIService.ExecQuery("Select * From CIM_Datafile Where Name = '" & StringReplace($sFilePath, "\", "\\") & "'") If IsObj($oColFiles) Then For $oObjectFile In $oColFiles Return StringUpper($oObjectFile.Drive) Next EndIf Return SetError(1, 1, 0) EndFunc ;==>_GetFilenameDrive Func _GetFilenamePath($sFilePath) Local $oWMIService = ObjGet("winmgmts:{impersonationLevel = impersonate}!\\" & "." & "\root\cimv2") Local $oColFiles = $oWMIService.ExecQuery("Select * From CIM_Datafile Where Name = '" & StringReplace($sFilePath, "\", "\\") & "'") If IsObj($oColFiles) Then For $oObjectFile In $oColFiles Return $oObjectFile.Path Next EndIf Return SetError(1, 1, 0) EndFunc ;==>_GetFilenamePath
_PathSplitWMI() based on the idea and code by MrCreatoR:
#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 #include <Array.au3> Global $aReturn, $sFile = FileOpenDialog("Select A File To Find The Details About It.", @ScriptDir, "(*.*)") If @error Then Exit EndIf $aReturn = _PathSplitWMI($sFile) _ArrayDisplay($aReturn) Func _PathSplitWMI($sFilePath) Local $oWMIService = ObjGet("winmgmts:{impersonationLevel = impersonate}!\\" & "." & "\root\cimv2") Local $oColFiles = $oWMIService.ExecQuery("Select * From CIM_Datafile Where Name = '" & StringReplace($sFilePath, "\", "\\") & "'") Local $aReturn[5] If IsObj($oColFiles) Then For $oObjectFile In $oColFiles $aReturn[0] = $oObjectFile.Name $aReturn[1] = StringUpper($oObjectFile.Drive) $aReturn[2] = $oObjectFile.Path $aReturn[3] = $oObjectFile.FileName $aReturn[4] = $oObjectFile.Extension Return $aReturn Next EndIf Return SetError(1, 1, 0) EndFunc ;==>_PathSplitWMI
Edited by guinness, 17 May 2011 - 07:49 PM.







