Это также должно работать (хотя я вижу некоторые странные результаты).
-(NSString*)lowLevTime:(NSString*)stringFormat {
char buffer[50];
const char *format = [stringFormat UTF8String];
time_t rawtime;
struct tm * timeinfo;
time(&rawtime);
timeinfo = localtime(&rawtime);
strftime(buffer, sizeof(buffer), format, timeinfo);
return [NSString stringWithCString:buffer encoding:NSASCIIStringEncoding];
}
Win32security - это то, что вам нужно. Вот начало примера:
http://timgolden.me.uk/python/win32_how_do_i/get-the-owner-of-a-file.html
Если вы хотите жить немного опасно (! ) мой незавершенный пакет winsys предназначен именно для того, что вам нужно. Вы можете получить MSI версии для разработчиков здесь:
http://timgolden.me.uk/python/downloads/WinSys-0.4.win32-py2.6.msi
или вы можете просто проверить ствол svn :
svn co http://winsys.googlecode.com/svn/trunk winsys
Чтобы сделать то, что вы описываете (слегка угадывая точные требования), вы можете сделать следующее:
import codecs
from winsys import fs
base = "c:/temp"
with codecs.open ("permissions.log", "wb", encoding="utf8") as log:
for f in fs.flat (base):
log.write ("\n" + f.filepath.relative_to (base) + "\n")
for ace in f.security ().dacl:
access_flags = fs.FILE_ACCESS.names_from_value (ace.access)
log.write (u" %s => %s\n" % (ace.trustee, ", ".join (access_flags)))
TJG