Página 1 de 1

Archivos, operar con archivos según sus propiedades

Publicado: 12 Feb 2014, 17:46
por qpongo
Hola otra vez... :smt006 saludos para todos.... :smt003

Help!! :smt100

En un directorio compartido en una red dónde los usuarios van creando o dejando archivos necesito:

Seleccionar los que pertenezcan a un usuario concreto para luego moverlos a un directorio.
En mi Windows XP veo quién es el propietario de cada archivo pero no sé como puedo seleccionarlo con Autoit para hacer un FileMove. He estado buscando la forma pero no la encuentro.

Muchas gracias,

qpongo :smt102

Re: Archivos, operar con archivos según sus propiedades

Publicado: 12 Feb 2014, 20:10
por Dany
Prueba esta funcion a ver si sirve?

Código: Seleccionar todo

Func _GetOwner ($sFilePath)
  Local $objSD
  $objWMIService = ObjGet("winmgmts:")
  $objFileSecuritySettings = _
  $objWMIService.Get("Win32_LogicalFileSecuritySetting='" & $sFilePath & "'")
  $intRetVal = $objFileSecuritySettings.GetSecurityDescriptor($objSD)

  If $intRetVal = 0 Then
    Return $objSD.Owner.Domain & "" & $objSD.Owner.Name
  Else
    Return -1
  EndIf
EndFunc
Saludos

Re: Archivos, operar con archivos según sus propiedades

Publicado: 12 Feb 2014, 20:50
por qpongo
Muchas gracias Dany,

Tu función casi seguro que me sirve y seguro que está bien... el problema es el habitual; que yo entienda algo :smt022
Imagino que le tengo que poner el directorio que debe examinar.... quiero que sea L:\ por eso le he asignado ese valor a $sFilePath
Y tendré que decirle el código de usuario que quiero buscar "JYL_26_\jose_l_r"

Aunque al hacerlo correr así tal cual, no da error, tampoco hace nada.

Ya ves que mi nivel aún es muyyyy bajo, perdona, aunque ya estoy consiguiendo resultados con las cositas que voy aprendiendo.

Código: Seleccionar todo

Func _GetOwner ($sFilePath)
  $sFilePath = "L:\" ; Directorio dónde quiero buscar
  Local $objSD
  $objWMIService = ObjGet("winmgmts:")
  $objFileSecuritySettings = "JYL_26_\jose_l_r"; Nombre de usuario a encontrar para seleccionar
  $objWMIService.Get("Win32_LogicalFileSecuritySetting='" & $sFilePath & "'")
  $intRetVal = $objFileSecuritySettings.GetSecurityDescriptor($objSD)
  If $intRetVal = 0 Then
    Return $objSD.Owner.Domain & "" & $objSD.Owner.Name
  Else
    Return -1
  EndIf
EndFunc

Re: Archivos, operar con archivos según sus propiedades

Publicado: 12 Feb 2014, 21:06
por Dany
tienes que hacer lo siguiente.


listas los archivos del directorio, a cada uno le aplicas la función. si corresponde con el usuario lo copias.

o que parte exactamente no entiendes como hacer?
Saludos

Re: Archivos, operar con archivos según sus propiedades

Publicado: 12 Feb 2014, 23:09
por qpongo
Gracias otra vez Dani,

No te preocupes, con lo que me has dicho mañana lo intento.

Jose