Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Кто последним менял файл? / 11 сообщений из 11, страница 1 из 1
07.08.2013, 17:02
    #38358613
Students
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто последним менял файл?
Привет всем.

Вот пример кода:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
public string GetSpecificFileProperties(string file)
        {
            string fileName = Path.GetFileNameWithoutExtension(file);
            string folderName = Path.GetDirectoryName(file);
            Shell32.Shell shell = new Shell32.Shell();
            Shell32.Folder objFolder;
            objFolder = shell.NameSpace(folderName);
            string result = "";            
            foreach (Shell32.FolderItem2 item in objFolder.Items())
            {
                if (fileName == item.Name)
                {
                    result = objFolder.GetDetailsOf(item, 10).Trim();
                    break;
                }
            }
            
            return result;



В этом методе я узнаю имя пользователя, менявшего файл (file - полный путь к файлу).
Вопрос - из-за чего иногда не срабатывает
Код: c#
1.
if (fileName == item.Name)



Особенно, когда файл в папке Temp или System32
...
Рейтинг: 0 / 0
07.08.2013, 17:08
    #38358628
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто последним менял файл?
Students,

почему нельзя сразу
Код: c#
1.
result = objFolder.GetDetailsOf(file, 10).Trim();
...
Рейтинг: 0 / 0
08.08.2013, 09:07
    #38359118
Students
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто последним менял файл?
попробовал, он в result постоянно пишет "Владелец", хотя раньше было имя пользователя, network и пустые поля
...
Рейтинг: 0 / 0
08.08.2013, 10:06
    #38359190
Students
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто последним менял файл?
может можно как-то по-другому вытащить имя юзера, последним менявшего файл?
...
Рейтинг: 0 / 0
08.08.2013, 13:03
    #38359536
Students
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто последним менял файл?
Может можно как-то не через Shell32 определить?
...
Рейтинг: 0 / 0
08.08.2013, 14:28
    #38359713
Students
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто последним менял файл?
http://msdn.microsoft.com/en-us/library/windows/desktop/bb787870(v=vs.85).aspx

Здесь написано owner, может это указывается владелец файла, а не тот, кто менял его в последний раз?
Какой-нибудь общий способ есть, как просмотреть, какой пользователь менял файл в последний раз?
...
Рейтинг: 0 / 0
08.08.2013, 14:52
    #38359782
Students
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто последним менял файл?
up
...
Рейтинг: 0 / 0
08.08.2013, 14:55
    #38359786
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто последним менял файл?
Studentsпопробовал, он в result постоянно пишет "Владелец", хотя раньше было имя пользователя, network и пустые поля

Изначально (зная полный путь к файлу) ты написал такой код: залезть в директорию файла, перебрать все файлы, и если имя совпало с искомым, то сделать что-то. Я считаю, что это плохой способ (читай - может порождать ошибки)
...
Рейтинг: 0 / 0
08.08.2013, 15:01
    #38359794
Students
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто последним менял файл?
Да, я больше не перебираю.
Метод GetDetailsOf не дает имя пользователя, менявшего файл, а дает имя владельца.

тут внизу:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb787870(v=vs.85).aspx

10 Owner: <COMPUTERNAME>\<USERNAME>

это имя владельца на самом деле. А как узнать имя пользователя, менявшего и сохранившего файл? Это вообще где-то хранится?
Есть какой-то общий подход?
...
Рейтинг: 0 / 0
08.08.2013, 15:22
    #38359833
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто последним менял файл?
StudentsДа, я больше не перебираю.
Метод GetDetailsOf не дает имя пользователя, менявшего файл, а дает имя владельца.

тут внизу:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb787870(v=vs.85).aspx

10 Owner: <COMPUTERNAME>\<USERNAME>

это имя владельца на самом деле. А как узнать имя пользователя, менявшего и сохранившего файл? Это вообще где-то хранится?
Есть какой-то общий подход?

... вообще говоря, предварительно на целевом компьютере должен быть включен Аудит доступа к файлам в Локальной политике безопасности, например
http://support.microsoft.com/kb/310399

.... а информацию о событиях надо тянуть из Журнала событий - Безопасность - Аудит ...
..примерно так ...
...
Рейтинг: 0 / 0
08.08.2013, 15:24
    #38359839
Students
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кто последним менял файл?
ясно, спасибо.
буду рыть в эту сторону
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Кто последним менял файл? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]