Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Свойства, аттрибуты файлов и папок

Ответить
Настройки темы
[решено] Свойства, аттрибуты файлов и папок

Пользователь


Сообщения: 56
Благодарности: 2

Профиль | Отправить PM | Цитировать


Меня интересует работа с файлами и директориями, я бы даже хотел напсать скрипт для синхронизации файлов (такой какой мне нужно), и скрипт, сохраняющий в html файл список файлов со свойствами и аттрибутами в виде таблицы. Но возникли вопросы, ответы на которые не нашёл в хелпe, или может быть некоторые из возможностей, которые мне нужны, не поддерживаются AutoIT. Не могли бы мне кто-нибудь ответиь на следующие вопросы.
Какими командами или переменными можно получить следующие свойства (аттрибуты) файла (которые, например можно отобразить в проводнике, в режиме отображения "Таблица":
• тип файла,
• дата создания,
• владелец файла, если файл храниться на NTFS-разделе
• изменён (дата последнего изменения),
• открыт (дата последнего доступа)?
Я нашёл в Хелпе лишь следующее:
• как узнать время последней модификации файла: FileGetTime ( "filename" ), эта команда, как я понял выдаёт только время последнего изменения, но не выдаёт время создания, и время последнего открытия (доступа).
• как узнать размер: FileGetSize
И ещё вопрос: у меня не работает эмуляция клавишь shift, alt, сontrol, т.е. например команда Send("^c") не работает. Кто-нибудь знает, с чем это связано?

Отправлено: 18:45, 16-08-2009

 

Аватара для Nik_rus

Пользователь


Сообщения: 92
Благодарности: 8

Профиль | Отправить PM | Цитировать


ctrl+с могут не работать, если основная раскладка не русская.
Насчет типа файла: это расширение ? Если да то можно-
Код: Выделить весь код
$file = "Blah.bmp"
$str = StringTrimLeft($file,StringInStr($file, "."))
If Not @error Then
	MsgBox(0,"Done","Расширение файла " & $file & " = " & $str)
Else
	MsgBox(0,"Чета не рабит","Ты какой-то хреновый кодер или у файла нет расширения")
EndIf
Дата создания и проч я не знаю, думаю это есть в разных UDF.

-------
Бу! Мерзкий любитель кенгуру!


Последний раз редактировалось Nik_rus, 18-08-2009 в 10:53.


Отправлено: 19:00, 16-08-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Цитата leonaft:
• тип файла, »
Код: Выделить весь код
#include <file.au3>
#include <array.au3>
Dim $szDrive, $szDir, $szFName, $szExt
$TestPath = _PathSplit(@ScriptFullPath, $szDrive, $szDir, $szFName, $szExt)
_ArrayDisplay($TestPath,"Demo _PathSplit()")

Отправлено: 19:05, 16-08-2009 | #3


Аватара для SyDr

Старожил


Сообщения: 215
Благодарности: 62

Профиль | Отправить PM | Цитировать


FileGetAttrib - атрибуты файла
FileGetTime - время создания или модифицирования. Смотрите последнюю версию справки. Русская версия устарела в данном вопросе.

-------

"Что мы думаем, знаем или во что верим в конце концов не так уж и важно.
Важно лишь то, что мы делаем."
Джон Раскин

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:06, 16-08-2009 | #4


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата leonaft:
тип файла »
Код: Выделить весь код
$sFileType = _FileGetType("C:\boot.ini")

MsgBox(64, 'Title', $sFileType)

Func _FileGetType($sFile)
    Local $iOld_Opt_EES = Opt("ExpandEnvStrings", 1)
    Local $sRegDefault, $sRegType = "", $sExt

    If _FileIsFolder($sFile) Then
        $sRegDefault = RegRead("HKCR\Folder", "")
        If $sRegDefault <> "" Then $sRegType = $sRegDefault
    Else
        $sExt = StringRegExpReplace($sFile, '^.*\.(.{0,5})$', '.\1')

        If @extended = 0 Or $sExt = $sFile Then
            $sExtSaerch = FileFindFirstFile($sFile & ".*")
            $sExt = StringRegExpReplace(FileFindNextFile($sExtSaerch), '^.*\.', '.')
            $sFile &= $sExt
        EndIf

        $sRegDefault = RegRead("HKCR\" & $sExt, "")

        If $sRegDefault <> "" Then $sRegType = RegRead("HKCR\" & $sRegDefault, "")
        If $sRegType = "" Then $sRegType = $sExt & "-File"
    EndIf

    Opt("ExpandEnvStrings", $iOld_Opt_EES)

    Return $sRegType
EndFunc

Func _FileIsFolder($sPath)
    Return StringInStr(FileGetAttrib($sPath & "\"), "D")
EndFunc
Цитата Nik_rus:
Shift, alt, ctrl могут не работать, если основная раскладка не русская. »
Первый раз слышу. Из за раскладки может неправильно определяться буква c, поэтому лучше делать так:

Код: Выделить весь код
_SendEx("^c")

Func _SendEx($sKeys, $iFlag=0)
    If @KBLayout = 0419 Then
        Local $aANSI_Chars = StringSplit("ёйцукенгшщзхъфывапролджэячсмитьбю.?", "")
        Local $aASCII_Chars = StringSplit("`qwertyuiop[]asdfghjkl;'zxcvbnm,./&", "")

        For $i = 1 To $aANSI_Chars[0]
            $sKeys = StringReplace($sKeys, $aASCII_Chars[$i], $aANSI_Chars[$i])
        Next
    EndIf

    Return Send($sKeys, $iFlag)
EndFunc
А конкретно для копирования, лучше вовсе так: Send("^{INS}")

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Последний раз редактировалось Creat0R, 17-08-2009 в 18:50.

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:42, 16-08-2009 | #5


Пользователь


Сообщения: 56
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата:
А конкретно для копирования, лучше вовсе так: Send("^{INS}")
[b] Да, точно, надо проверить.

Отправлено: 00:27, 17-08-2009 | #6


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата leonaft:
владелец файла »
Код: Выделить весь код
ConsoleWrite(_FileGetOwner(@HomePath) &@CRLF)

Func _FileGetOwner($sFile, $sComputer = ".")
    Local $objWMI, $colItems, $objItem, $strOwner = ""

    $objWMI = ObjGet("winmgmts:\\" & $sComputer & "\root\cimv2")
    If Not(IsObj($objWMI)) Then Return SetError(1, 0, "")
    $colItems = $objWMI.ExecQuery("ASSOCIATORS OF {Win32_LogicalFileSecuritySetting='" & $sFile & "'}" _
         & " WHERE AssocClass=Win32_LogicalFileOwner ResultRole=Owner")
    If Not(IsObj($colItems)) Then Return SetError(2, 0, "")
    For $objItem In $colItems
        $strOwner = $objItem.ReferencedDomainName &"\"& $objItem.AccountName
        If $strOwner=="\" Then $strOwner = $objItem.SID
    Next

    Return $strOwner
EndFunc
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:55, 17-08-2009 | #7


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Вот ещё функция для получения свойств файла:

Код: Выделить весь код
#include <Array.au3>

$aProperties = _FileGetExtProperty(@AutoItExe, -1)

_ArrayDisplay($aProperties)

;===============================================================================
; Function Name:    _FileGetExtProperty($sPath, $iProp)
; Description:      Returns an extended property of a given file.
; Parameter(s):     $sPath - The path to the file you are attempting to retrieve an extended property from.
;                   $iProp - The numerical value for the property you want returned. If $iProp is is set
;                             to -1 then all properties will be returned in a 1 dimensional array in their corresponding order.
;                           The properties are as follows:
;                           #   Windows XP / Windows Server 2003    |    Windows 2000
;                           0               Name                            Name
;                           1               Size                            Size
;                           2               Type                            Type
;                           3               Date Modified                   Date Modified
;                           4               Date Created                    Attributes
;                           5               Date Accessed                   Comment
;                           6               Attributes                      Date Created
;                           7               Status                          Date Accessed
;                           8               Camera Model                    Owner
;                           9               Author                          ???
;                           10              Title                           Author
;                           11              Duration                        Title
;                           12              Category                        Subject
;                           13              Pages                           Category
;                           14              Owner                           Pages
;                           15              Copyright                       Copyright
;                           16              Artist                          Company Name
;                           17              Genre                           Module Desription
;                           18              Protected                       Module Version
;                           19              Comments                        Product Name
;                           20              Album Title                     Product Version
;                           21              Subject                         Sender Name
;                           22              Dimensions                      Recipient Name
;                           23              Year                            Recipient Number
;                           24              Track Number                    Csid
;                           25              Date Picture Taken              Tsid
;                           26              Bit Rate                        Transmission Time
;                           27              ???                             Caller Id
;                           28              ???                             Routing
;                           29              ???                             Audio Format
;                           30              Company                         Sample Rate
;                           31              Description                     Audio Sample Size
;                           32              File Version                    Channels
;                           33              Product Name                    Play Length
;                           34              Product Version                 Frame Count
;                           35              ???                             Frame Rate
;                           36              ???                             Video Sample Size
;                           37              ???                             Video Compression
; Requirement(s):   File specified in $spath must exist.
; Return Value(s):  On Success - The extended file property, or if $iProp = -1 then an array with all properties
;                   On Failure - 0, @Error - 1 (If file does not exist)
; Author(s):        Simucal (Simucal@gmail.com), Mod. by G.Sandler (a.k.a CreatoR)
; Note(s):
;
;===============================================================================
Func _FileGetExtProperty($sPath, $iProp)
    Local $sFile, $sDir, $oShellApp, $oDir, $oFile, $aProperty, $sProperty
    If Not FileExists($sPath) Then Return SetError(1, 0, 0)

    $sFile = StringTrimLeft($sPath, StringInStr($sPath, "\", 0, -1))
    $sDir = StringTrimRight($sPath, (StringLen($sPath) - StringInStr($sPath, "\", 0, -1)))

    $oShellApp = ObjCreate("shell.application")
    $oDir = $oShellApp.NameSpace($sDir)
    $oFile = $oDir.ParseName($sFile)

    If $iProp = -1 Then
        Local $aProperty[35]

        For $i = 0 To 34
            $aProperty[$i] = $oDir.GetDetailsOf($oFile, $i)
        Next

        Return $aProperty
    EndIf

    $sProperty = $oDir.GetDetailsOf($oFile, $iProp)

    If $sProperty = "" Then Return 0
    Return $sProperty
EndFunc   ;==>_FileGetExtProperty
Цитата amel27:
Func _FileGetOwner($sFile, $sComputer = ".") »
У меня она возвращает пустую строку

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:24, 17-08-2009 | #8


Аватара для timsky

Новый участник


Сообщения: 46
Благодарности: 10

Профиль | Отправить PM | Цитировать


Creat0R, у меня нормально отрабатывает. ХР SP3 EN

Отправлено: 22:45, 17-08-2009 | #9


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
У меня она возвращает пустую строку »
На Вин7 всё нормально ...
Код: Выделить весь код
MsgBox(0,"", _FileGetOwner(@ScriptFullPath) )
Так возвращает владельца администратора.

Отправлено: 07:31, 18-08-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Свойства, аттрибуты файлов и папок

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Не запоминается расположение папок и файлов Den47 Microsoft Windows 2000/XP 13 13-02-2020 18:13
Интерфейс - [решено] Сортировка файлов и папок в Проводнике shesmu Microsoft Windows 2000/XP 1 23-08-2009 02:39
[решено] Удаление файлов и папок ArGoth Автоматическая установка Windows 2000/XP/2003 1 26-05-2008 18:03
Разное - [решено] Совмещение файлов и папок interminable Microsoft Windows Vista 4 14-10-2007 00:35
Свойства папок по умолчанию у пользрвателя с ограниченніми правами. neja Microsoft Windows 2000/XP 2 26-04-2007 09:48




 
Переход