|
|
по полному имени файла определить что он находится на удаленной машине |
☑ |
|
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)="\\"
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший