Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли? / 25 сообщений из 42, страница 1 из 2
22.10.2020, 10:54
    #40010808
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
И снова здравствуйте)

Уже вопрос ранее проскакивал тут, хочу спросить по альтернативным решениям.

Есть ли у обычной папки какой либо системный idшник при создании, за который можно зацепиться из VBA и который не зависит от постоянного переименовывания файла итд итп?

1) Есть вариант привязки по дате создания файла, его я знаю.

2) Есть ли альтернативные варианты?
...
Рейтинг: 0 / 0
22.10.2020, 11:02
    #40010811
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
Сергей Лалов
Есть ли у обычной папки какой либо системный idшник при создании, за который можно зацепиться из VBA и который не зависит от постоянного переименовывания файла итд итп?

а имя папки чем не подходит?
...
Рейтинг: 0 / 0
22.10.2020, 11:21
    #40010815
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
Капай в сторону NTFS (указатели)
...
Рейтинг: 0 / 0
22.10.2020, 11:42
    #40010822
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
Сергей Лалов
Есть ли у обычной папки какой либо системный idшник при создании, за который можно зацепиться из VBA и который не зависит от постоянного переименовывания файла итд итп?

можно, программно, установить папке "файловый" атрибут Archive (он никак на свойства папки не влияет),
и, потом, находить эту папку по установленному этому атрибуту
...
Рейтинг: 0 / 0
22.10.2020, 12:41
    #40010849
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
court
Сергей Лалов
Есть ли у обычной папки какой либо системный idшник при создании, за который можно зацепиться из VBA и который не зависит от постоянного переименовывания файла итд итп?

можно, программно, установить папке "файловый" атрибут Archive (он никак на свойства папки не влияет),
и, потом, находить эту папку по установленному этому атрибуту

Это как?
...
Рейтинг: 0 / 0
22.10.2020, 13:00
    #40010861
Прогер_самоучка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
court
Сергей Лалов
Есть ли у обычной папки какой либо системный idшник при создании, за который можно зацепиться из VBA и который не зависит от постоянного переименовывания файла итд итп?

можно, программно, установить папке "файловый" атрибут Archive (он никак на свойства папки не влияет),
и, потом, находить эту папку по установленному этому атрибуту
а ежели папок много? :)
...
Рейтинг: 0 / 0
22.10.2020, 13:02
    #40010862
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
ROI
court
пропущено...

можно, программно, установить папке "файловый" атрибут Archive (он никак на свойства папки не влияет),
и, потом, находить эту папку по установленному этому атрибуту

Это как?

как-то так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Sub test()
    Dim f As Object
    
    With CreateObject("Scripting.FileSystemObject")
        Set f = .GetFolder("D:\temp\test")
        Debug.Print f.Attributes
        f.Attributes = f.Attributes + 32
        Debug.Print f.Attributes
        Set f = Nothing
    End With
    
    With CreateObject("Scripting.FileSystemObject")
        For Each f In .GetFolder("D:\temp").SubFolders
            If f.Attributes And 32 Then Debug.Print f.Path
        Next
    End With
    
End Sub


Код: vbnet
1.
2.
3.
16 
48 
D:\temp\test
...
Рейтинг: 0 / 0
22.10.2020, 13:03
    #40010863
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
Прогер_самоучка
court
пропущено...

можно, программно, установить папке "файловый" атрибут Archive (он никак на свойства папки не влияет),
и, потом, находить эту папку по установленному этому атрибуту
а ежели папок много? :)
нуу, ТСу, вроде, одну нужно ...
...
Рейтинг: 0 / 0
22.10.2020, 13:12
    #40010866
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
court
Прогер_самоучка
пропущено...
а ежели папок много? :)
нуу, ТСу, вроде, одну нужно ...

ТС вродебы спрашивал про уникальный ID (есть ли у файлов и папок)
Причем тут атрибут архивный не совсем понятно
...
Рейтинг: 0 / 0
22.10.2020, 13:21
    #40010870
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
ROI
court
пропущено...
нуу, ТСу, вроде, одну нужно ...

ТС вродебы спрашивал про уникальный ID (есть ли у файлов и папок)
Причем тут атрибут архивный не совсем понятно
у него задача - гарантированно находить какую-то папку, содержимое/наименование которой может меняться [пользователем]

пс
и будет это делаться по ID (которого нет) или по атрибуту (который есть, и который нельзя установить НЕ программно) - не важно
...
Рейтинг: 0 / 0
22.10.2020, 13:31
    #40010876
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
court
(который есть, и который нельзя установить НЕ программно)

Это с какого перепугу? (или я чего не понял)
Это когда атрибут архивный стал уникальным?
...
Рейтинг: 0 / 0
22.10.2020, 13:33
    #40010878
Прогер_самоучка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
ROI
court
(который есть, и который нельзя установить НЕ программно)

Это с какого перепугу? (или я чего не понял)
Это когда атрибут архивный стал уникальным?
Ровно с тех пор, когда все остальные папки останутся с атрибутом неархивный :)
...
Рейтинг: 0 / 0
22.10.2020, 13:34
    #40010880
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
ROI
court
(который есть, и который нельзя установить НЕ программно)

Это с какого перепугу? (или я чего не понял)
Это когда атрибут архивный стал уникальным?
да, есть в "дополнительно"

пс
чёта уверен был что это только для файлов
...
Рейтинг: 0 / 0
22.10.2020, 13:45
    #40010883
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
Прогер_самоучка
ROI
пропущено...

Это с какого перепугу? (или я чего не понял)
Это когда атрибут архивный стал уникальным?
Ровно с тех пор, когда все остальные папки останутся с атрибутом неархивный :)

А если есче одна папка появиться и чё как отличать будешь?
...
Рейтинг: 0 / 0
22.10.2020, 13:59
    #40010886
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
ROI,

А вообще то ТС дурью мается, а мы тут копья ломаем
...
Рейтинг: 0 / 0
22.10.2020, 14:01
    #40010887
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
Сергей Лалов, попробуй покопать в сторону
Код: vbnet
1.
Declare Function GetFileInformationByHandle Lib "kernel32.dll" (ByVal hFile As Long, lpFileInformation As BY_HANDLE_FILE_INFORMATION) As Long


после недолгого просмотра инета...
вроде как https://www.delphiplus.org/kriminalisticheskii-analiz-failovykh-sistem/identifikatory-obektov.html В NTFS версий 3.0+ существует дополнительный метод адресации файлов и каталогов (кроме стандартной адресации по именам каталогов/файлов или адресов записей MFT). Приложение или ОС может присвоить файлу уникальный 128-разрядный идентификатор объекта, который в дальнейшем используется для ссылок на объект даже в случае его переименования или перемещения на другой том. Продукты Microsoft используют идентификаторы объектов при внедрении файлов. Идентификатор может использоваться для ссылки на внедренный файл даже после его перемещения. ну и дальше в эту сторону

Сам не пробовал, ибо не нужно...
...
Рейтинг: 0 / 0
22.10.2020, 14:05
    #40010890
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
...
Рейтинг: 0 / 0
22.10.2020, 14:11
    #40010893
Прогер_самоучка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
ROI
Прогер_самоучка
пропущено...
Ровно с тех пор, когда все остальные папки останутся с атрибутом неархивный :)

А если есче одна папка появиться и чё как отличать будешь?

Прогер_самоучка
court
пропущено...

можно, программно, установить папке "файловый" атрибут Archive (он никак на свойства папки не влияет),
и, потом, находить эту папку по установленному этому атрибуту
а ежели папок много? :)
...
Рейтинг: 0 / 0
22.10.2020, 14:20
    #40010896
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?

тут на ВБ
https://social.msdn.microsoft.com/Forums/en-US/b13c01d4-b777-4143-a308-0f522b607a9c/get-unique-system-id-for-file-in-windows?forum=isvvba
Код: vbnet
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.
47.
48.
49.
50.
51.
Const OFS_MAXPATHNAME = 128
Const OF_CREATE = &H1000
Const OF_READ = &H0
Const OF_WRITE = &H1

Private Type FILETIME
        dwLowDateTime As Long
        dwHighDateTime As Long
End Type
 
Private Type BY_HANDLE_FILE_INFORMATION
        dwFileAttributes As Long
        ftCreationTime As FILETIME
        ftLastAccessTime As FILETIME
        ftLastWriteTime As FILETIME
        dwVolumeSerialNumber As Long
        nFileSizeHigh As Long
        nFileSizeLow As Long
        nNumberOfLinks As Long
        nFileIndexHigh As Long
        nFileIndexLow As Long
End Type

Private Type OFSTRUCT
        cBytes As Byte
        fFixedDisk As Byte
        nErrCode As Integer
        Reserved1 As Integer
        Reserved2 As Integer
        szPathName(OFS_MAXPATHNAME) As Byte
End Type

Private Declare Function GetFileInformationByHandle Lib "kernel32" (ByVal hFile As Long, lpFileInformation As BY_HANDLE_FILE_INFORMATION) As Long
Private Declare Function OpenFile Lib "kernel32" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Function GetFileIdentifier(strFilePath) As String

Dim lngFileHandle As Long
Dim FileInfo As BY_HANDLE_FILE_INFORMATION
Dim OF As OFSTRUCT

lngFileHandle = OpenFile(strFilePath, OF, OF_READ)

GetFileInformationByHandle lngFileHandle, FileInfo

CloseHandle lngFileHandle

GetFileIdentifier = CStr(FileInfo.nFileIndexHigh) & CStr(FileInfo.nFileIndexLow)
    
End Function


Код: vbnet
1.
2.
3.
4.
5.
Sub test()
    Debug.Print GetFileIdentifier("D:\temp\test\1.txt")
    Name "D:\temp\test\1.txt" As "D:\temp\test\11.txt"
    Debug.Print GetFileIdentifier("D:\temp\test\11.txt")
End Sub


Код: vbnet
1.
2.
1966083574
1966083574
...
Рейтинг: 0 / 0
22.10.2020, 14:28
    #40010899
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
court
тут на ВБ
тоже ничё, я так глубоко не копал
...
Рейтинг: 0 / 0
22.10.2020, 14:39
    #40010905
ROI
ROI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
court,
А теперь прогоните хотя бы на 500 файлов
будут или нет совпадения
...
Рейтинг: 0 / 0
22.10.2020, 14:42
    #40010906
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
ROI
court,
А теперь прогоните хотя бы на 500 файлов
будут или нет совпадения
сегодня, я микрософту верю как себе
...
Рейтинг: 0 / 0
22.10.2020, 14:55
    #40010910
istrebitel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
Гуглите Альтернативные потоки данных в NTFS
...
Рейтинг: 0 / 0
22.10.2020, 19:25
    #40011000
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
Ого, накатали, спасибо большое! Буду разбираться.
Да, действительно, нужно зацепить айдишник не одной папки, а мониторить много папок.представьте что менеджеры каждый под свой продукт создают в файловой помойке по определённому пути папку с именем ВасяХзКакойЗаказ, потом спустя время, пробив цены и согласовав продажи папка меняет имя на ВасяСкрепкиНормальныйВарик.
И вне зависимости от имени папки у меня должна быть связь, ссылка на эту папку, как бы она не называлась и сколько бы раз не переименовывалась)
...
Рейтинг: 0 / 0
22.10.2020, 21:18
    #40011022
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли?
ROI,
Че дурью то сразу))
Тут тема такая, представьте себе компанию, среднего размера, с количеством сотрудников более 200 человек + 20 летней историей. У каждого отдела сложились свои ритуалы в плане закладывания файлов по папкам, и этих папок в другие папки.
У продаж свои, у бухгалтеров свои, у других свои.
Перестроить многолетнюю логику работы компании и бп нельзя.
Нужно собирать информацию из всех ресурсов. Повлиять на ритуальные манипуляции с папками других департаментов нельзя.
Они переименовываются постоянно, переносятся в архивные папки, итд итп.

Поиск и связь по айдишнику папки, с последующим отображением её в webrowser позволит мне сэкономить около 20% моего рабочего времени) Всё банально.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос по использованию папки, неизменяемый индекс за который можно зацепиться, есть ли? / 25 сообщений из 42, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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