Имя: Пароль:
1C
1С v8
по полному имени файла определить что он находится на удаленной машине
0 novichok79
 
24.11.16
15:38
Доброго времени суток, уважаемые специалисты 1С!
Возник вопрос - как по полному имени файла определить что он находится на удаленной машине. Я думаю что по наличию \\ в начале полного имени файла. Есть еще какие-то способы? Заранее благодарю за помощь.
1 f_vadim
 
24.11.16
15:40
если шара подключена как диск, то \\ не сработает
2 f_vadim
 
24.11.16
15:44
3 Лефмихалыч
 
24.11.16
15:46
mklink /j local_file.txt \path\to\hren\najdesh\file.txt


ты это ни как по имени не отличишь от локального файла
4 novichok79
 
24.11.16
15:48
(1), (2) спасибо. как вариант.
5 Garykom
 
гуру
24.11.16
15:50
По времени доступа к файлу прекрасно определяется по сравнению со временем доступа к локальному файлу ))
6 f_vadim
 
24.11.16
16:06
objLocator = Новый COMОбъект("WbemScripting.SWbemLocator");
objWMIService = objLocator.ConnectServer(".", "root\cimv2");

colDisks = objWMIService.ExecQuery("Select * from Win32_LogicalDisk");

для каждого objDisk из colDisks цикл
    Если objDisk.DriveType = 1 Тогда
        Сообщить("DeviceID: " + objDisk.DeviceID + " " + "No root directory. Drive type could not be determined.");
    ИначеЕсли objDisk.DriveType = 2 Тогда
        Сообщить("DeviceID: " + objDisk.DeviceID + " " + "Removable drive.");
    ИначеЕсли objDisk.DriveType = 3 Тогда
        Сообщить("DeviceID: " + objDisk.DeviceID + " " + "Local hard disk.");
    ИначеЕсли objDisk.DriveType = 4 Тогда
        Сообщить("DeviceID: " + objDisk.DeviceID + " " + "Network disk.");
    ИначеЕсли objDisk.DriveType = 5 Тогда
        Сообщить("DeviceID: " + objDisk.DeviceID + " " + "Compact disk.");
    ИначеЕсли objDisk.DriveType = 6 Тогда
        Сообщить("DeviceID: " + objDisk.DeviceID + " " + "RAM disk.");
    Иначе
        Сообщить("DeviceID: " + objDisk.DeviceID + " " + "Drive type could not be determined.");
    КонецЕсли;
конеццикла;
7 f_vadim
 
24.11.16
16:06
адаптировал ссылку из (2)
8 Лефмихалыч
 
24.11.16
16:08
(6) вот здесь (3) твой этот лисапед скажет "Local hard disk". А файл при этом будет хрен знает где.
9 f_vadim
 
24.11.16
16:21
(8)
лисапед не мой и он ещё и под линухом не взлетит, если уж придираться.
а симлинк вроде можно выковырять из атрибутов
10 Torquader
 
25.11.16
01:36
(9) Можно, конечно, только вот "перехватчики" файловой системы, которые "монтируют" несуществующие файлы в определённую директорию таким образом не перехватишь, так как атрибуты будут у перехватчика (фильтра) запрошены - что он выдаст, то программа и увидит.
11 VladZ
 
25.11.16
05:55
(0) Зачем?
12 Лефмихалыч
 
25.11.16
09:25
(9) с такой логикой тебе и Лев(2)="\" подходит на все 146%
зачем было ветку заводить?
13 Лефмихалыч
 
25.11.16
09:25
+(12)Лев(2)="\\"