Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 03.04.2018
Сообщений: 1

Аудит общей папки filesystemwatcher и netapi32.dll

03.04.2018, 12:28. Показов 1332. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь реализовать аудит общей папки при помощи filesystemwatcher и netapi32.dll.
Столкнулся с проблемой, функция NetFileEnum не возвращает структуру «FILE_INFO_3». При вызове функции NetFileEnum указатель dwReadEntries постоянно равен 0.
Пробовал данный код на windows 7 x64, пробовал на server 2003 r2 та же история. Запуск с правами администратора.

код:

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
    <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto, Pack:=4)>
    Structure FILE_INFO_3
        Dim fi3_id As Integer
        Dim fi3_permission As Integer
        Dim fi3_num_locks As Integer
        <MarshalAs(UnmanagedType.LPWStr)>
        Dim fi3_pathname As String
        <MarshalAs(UnmanagedType.LPWStr)>
        Dim fi3_username As String
    End Structure
 
 
    <DllImport("netapi32.dll", CharSet:=CharSet.Unicode, SetLastError:=True)>
    Private Shared Function NetFileEnum(ByVal servername As String, ByVal basepath As String, ByVal username As String, ByVal level As Integer, ByRef bufptr As IntPtr, ByVal prefmaxlen As Integer,
    ByRef entriesread As Integer, ByRef totalentries As Integer, ByRef resume_handle As Integer) As Integer
    End Function
 
 
    Private Shared Function GetFileIdFromPath(ByVal filepath As String) As Integer
        Const MAX_PREFERRED_LENGTH As Integer = -1
 
        Dim dwIndex, dwStatus, dwReadEntries, dwTotalEntries As Integer
        Dim iPtr, pBuffer As IntPtr
        Dim pCurrent As FILE_INFO_3 = New FILE_INFO_3
        Try
            dwStatus = NetFileEnum(Nothing, filepath, Nothing, 3, pBuffer, MAX_PREFERRED_LENGTH, dwReadEntries, dwTotalEntries, IntPtr.Zero)
            If dwStatus = 0 Then
                For dwIndex = 0 To dwReadEntries - 1
                    iPtr = New IntPtr(pBuffer.ToInt32 + (dwIndex * Marshal.SizeOf(pCurrent)))
 
                    pCurrent = CType(Marshal.PtrToStructure(iPtr, GetType(FILE_INFO_3)), FILE_INFO_3)
 
                    'Dim fileId = pCurrent.fi3_id
                    NetApiBufferFree(pBuffer)
                    Return pCurrent.fi3_id
                Next
            End If
 
            NetApiBufferFree(pBuffer)
        Catch ex As Exception
 
        End Try
 
        Return -1
 
    End Function
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.04.2018, 12:28
Ответы с готовыми решениями:

FileSystemWatcher. Контроль сетевой папки
Привет всем! Подскажите, пожалуйста, будет ли FileSystemWatcher эффективно следить за изменениями в папке и её файлах, находящихся на...

Мониторинг определенной папки. FileSystemWatcher
Привет, Всем! Хотел бы узнать такой момент, по поводу FileSystemWatcher. Мне нужно мониторить определенную папку, отслеживать все...

FileSystemWatcher - как отследить копирование папки с файлами?
Не понимаю как отследить копирование или перемещение папки с файлами. Отслеживание создания отдельно файлов или отдельно папки работает...

1
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
10.04.2018, 00:04
Зачем отправлять в функцию IntPtr, если можно сразу отправить FILE_INFO_3 в виде переменной pCurrent?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.04.2018, 00:04
Помогаю со студенческими работами здесь

Настройка общей папки
Добрый день. Как сделать задание: &quot;Настроить общую папку с хостовой системой на виртуальной машине (xubuntu)&quot; с помощью MC (Midnight...

Настройка общей папки
Добрый день. У меня такой вопрос. Возможно, ли воссоздать такое: На сервере есть общая папка, в ней еще папки по отделам в компании. У...

Создание общей скрытой папки
Доброго времени суток! Появилась задача: переслать программно файл от одного компьютера к другому по локальной сети. и тут возникло пару...

Загрузка Почты С Общей Папки Exchange
У кого есть опыт как это реализовать эту штуку в 1с 8.2, подскажите в какую сторону разбиратся. Была ветка, но там ее так и не решили...

создание общей папки с определнными правами
Добрый день начну с предыстории. Организовал резервное копирование на тестовом стенде (один комп, один контроллер доменов) таким образом -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru