|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
Возникла задача, кот. раньше не решал. Файл в папке не виден, путь к нему знаю. В FAR делается так (из верхнего меню). Файлы -> Атрибуты файлов снять крестик на слове "скрытый" Установить Предполагается, что пользователь, под которым запущен процесс имеет на это право. .Net, API. Желательно API. CMD категорически не приветствуется. Владельца менять умею, права для пользователя/группы задавать умею, а этого просто никогда не делал. Google с разбегу не помог. К слову, кто-нибудь знает 1) как это ручками в виндах без FAR-а сделать? 2) как вообще файл увидеть в проводнике, если он скрыт? Панель управления -> Оформление и персонализация -> Показ скрытых файлов и папок -> Нижняя опция "Показывать скрытые файлы, папки и диски" - почему-то не работает. Подопытный файл, к слову: C:\Program Files\Windows Mail\WinMail.exe Начиная с Win7 до Win10 1703 включительно он скрыт, на 1709 его тупо нет. По дефолту владелец TrustedInstaller, "Administrators" имеют права чтения и чтения выполнения (не унаследовано), т.е. предварительно (под Administrators) меняется владелец TrustedInstaller->Administrators и задаются полные права для Administrators, тогда галку "скрытый" можно снять из Far (запуск AsAdmin). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2018, 21:01 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2018, 21:06 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
Дмитрий772) как вообще файл увидеть в проводнике, если он скрыт? Windows 10 Проводник → Параметры → Изменить параметры папок и поиска → Вид (вкладка) → Скрытые файлы и папки → Показывать скрытые файлы и папки (в самом низу) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2018, 21:08 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
hVosttДмитрий77, https://msdn.microsoft.com/en-us/library/system.io.file.setattributes(v=vs.110).aspx Спасибо. А я пока нашел (мозги все-таки у меня не под .Net заточены) GetFileAttributes function SetFileAttributes function Ну, судя по описанию в обоих вариантах все просто, icacl-ы писать не придется, уже радует. hVosttПроводник → Параметры → Изменить параметры папок и поиска → Вид (вкладка) → Скрытые файлы и папки → Показывать скрытые файлы и папки (в самом низу)А вот ни фига не работает, ни из 7-ки, ни из 10-ки. C:\Program Files\Windows Mail\WinMail.exe (попробуй, правда если у тебя Win10 1709 то там этого файла нет) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2018, 21:24 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
Дмитрий77А вот ни фига не работает, ни из 7-ки, ни из 10-ки. C:\Program Files\Windows Mail\WinMail.exe (попробуй, правда если у тебя Win10 1709 то там этого файла нет) Потому что есть разница между скрытым и системным файлом. Проводник не отображает файлы, помеченные как системные. https://msdn.microsoft.com/en-us/library/windows/desktop/gg258117(v=vs.85).aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2018, 21:51 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
hVosttПотому что есть разница между скрытым и системным файлом. Это понятно, что это разные атрибуты. hVosttПроводник не отображает файлы, помеченные как системные. Ну тогда надо уточнить 1) скрытый+системный - не отображает (и "свойствами папки" не лечится) 2) системный, но НЕ скрытый - отображает Задачи отнять у файла атрибут "системный" - не стоит. При снятии атрибута "скрытый" файл отображается. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2018, 22:02 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
Дмитрий77Проводник → Параметры → Изменить параметры папок и поиска → Вид (вкладка) → Скрытые файлы и папки → Показывать скрытые файлы и папки (в самом низу) А вот ни фига не работает, ни из 7-ки, ни из 10-ки. C:\Program Files\Windows Mail\WinMail.exe (попробуй, правда если у тебя Win10 1709 то там этого файла нет) В 7-ке: Проводник-Сервис-Параметры папок-Вид-Показывать скрытые файлы, папки и диски Файл C:\Program Files\Windows Mail\WinMail.exe прекрасно виден... Правда, при такой настройке везде (в т.ч. на рабочем столе) также виден файл desktop.ini, что мне крайне не нравится. Поэтому этот флажок никогда не включаю, так как проводником практически не пользуюсь. FAR в зубы - ничего не скроешь, видно всё.. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2018, 22:17 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
Дмитрий77Ну тогда надо уточнить 1) скрытый+системный - не отображает (и "свойствами папки" не лечится) 2) системный, но НЕ скрытый - отображает Задачи отнять у файла атрибут "системный" - не стоит. При снятии атрибута "скрытый" файл отображается. А, ну может быть... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2018, 00:21 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
d7iВ 7-ке: Проводник-Сервис-Параметры папок-Вид-Показывать скрытые файлы, папки и диски Файл C:\Program Files\Windows Mail\WinMail.exe прекрасно виден... Не виден. Системные не видны (м.б. у Вас какие настройки хитрые). Для среднестатистического юзера задача сделать файл видимым практически считай нерешаемая, т.к. FAR без смены владельца и наделением правами бесполезен, а не видя файла, нельзя вызвать свойства->безопасность Остаются заумные cmd-утилиты (я всегда делал своей программой), а потом уже far. Ну да ладно, к теме вопроса, вернее ответа. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Но мне больше нравится через API (недолюбливаю эти try... catch exeption-ы, во-первых тормозят, во-вторых описание ошибки - такая простыня ахинеи): Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2018, 01:00 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
Дмитрий77d7iВ 7-ке: Проводник-Сервис-Параметры папок-Вид-Показывать скрытые файлы, папки и диски Файл C:\Program Files\Windows Mail\WinMail.exe прекрасно виден... Не виден. Системные не видны (м.б. у Вас какие настройки хитрые). Ну куда уж хитрее: ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2018, 09:36 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныНу куда уж хитрее: Да уж, век живи век учись. Тупо не заметил. А ведь в XP такая же настройка была, но почему-то проблем с ней никогда не было, и пользовался ей частенько. Но у меня 7-ки никогда как рабочей не стояло, а в 8.1-10 об этом никогда не думал. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2018, 10:19 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
Дмитрий77Но мне больше нравится через API (недолюбливаю эти try... catch exeption-ы, во-первых тормозят, во-вторых описание ошибки - такая простыня ахинеи): Так может тогда уйти на C/C++? Зачем эти адские костыли и противоречия? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2018, 18:12 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
hVosttТак может тогда уйти на C/C++? Это корявость виндовса и оттуда оно все так же коряво будет выглядеть. Вобщем это проблема ОС, а не ЯП. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2018, 19:31 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
Dima ThVosttТак может тогда уйти на C/C++? Это корявость виндовса и оттуда оно все так же коряво будет выглядеть. Вобщем это проблема ОС, а не ЯП. Вопрос не в корявости. Дмитрий проглатывает исключения и работает с ошибками в низкоуровневом стиле, в то время, как исключения созданы для того, чтобы ошибки вываливались наружу из глубин кода, и там обрабатывались с помощью try/catch. Именно в этом смысл, и именно этот смысл абсолютно бессмысленно закапывается в могилу и с ошибками Дмитрий работает убогим образом, точно так же как с ними работают в Си. И здесь назревает вопрос. Если в наличии такая любовь к низкоуровневому АПИ и низкоуровневым концепциям разработки, за каким вообще использовать .NET? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2018, 20:32 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
Это не наезд и не критика, если что. Просто интересно. Когда мне надо было иметь дело с АПИ, работая с криптографией, я использовал C++/CLI, так как маршаллинг и интеропы в .NET в большом количестве, это омерзительно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2018, 20:35 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
hVostt, если что. Просто интересно. Если что, потрудись,сделай поиск по моим ответам на подобные оффтопные вопросы. API вообще пофиг на чем программировать. В VB.Net они программируются как в VB6, есть ньюансы, но это дело наживное. C/C++ достаточно сложен, и там тоже куча подводных камней. С рантаймами, SDK/DDK гораздо тяжелее бороться чем с "версиями .Net". По поводу try/catch в данном случае пофиг. Чтоб не вываливалась куча хлама можно в принципе вывести Код: vbnet 1. 2.
вместо Код: vbnet 1. 2.
Будет относительно коротко, хотя что нибудь да припишет. Но. try...catch еще дает кучу реальных тормозов. К примеру попробуй из реестра сразу много параметров через try...catch если их там нет. === Все это фигня. Я вот тут в процессе на интересный факт напоролся. Если файл с атрибутом "системный" (пример - упомянутый WinMail.exe) , в него что скопировать нельзя? IO.File.Copy(source_path, file_path, True) вываливается в Err.5 (нет доступа). Права на замену файла есть. В проводнике копируется (не без упреждающих окон правда), в far тоже. Извратился в итоге так (так же как и снять hidden): Код: vbnet 1. 2. 3.
Но ответа почему так и не нашел. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2018, 23:57 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
Дмитрий77В проводнике копируется (не без упреждающих окон правда), в far тоже.Они вроде бы то же самое и делают после акцепта предупреждения, снимают атрибут, пишут, ставят обратно. Еще Нортон Коммандер так делал в ДОСе) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2018, 00:09 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
Shocker.Pro, ну значит я все правильно "догадался". ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2018, 00:59 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
Дмитрий77Но. try...catch еще дает кучу реальных тормозов. Можно не нести здесь подобную хрень? Веришь в этот бред, ради бога, но людей не вводи в заблуждение. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2018, 03:12 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
Бросаю иммунитет на бредятину по поводу «тормозов» try/catch для новичков и людей, которых может смутить подобные весьма неумные вбросы. https://stackoverflow.com/questions/1308432/do-try-catch-blocks-hurt-performance-when-exceptions-are-not-thrown Вкратце, на цикле из 10 миллионах проходов, просадка где-то в 30 мс. Т.е. почувствовать эту просадку можно только в очень редких случаях для обычного разработчика, на вычислительных алгоритмах с огромным количеством итераций. Гораздо страшнее на этом фоне выглядит PInvoke, из-за которого просадки существенно выше. Т.е., если человека так заботят «тормоза» try/catch, то он в первую очередь должен отказаться от .NET, если требуется работать с низкоуровневым API. Прям бежать надо, сверкая пятками от .NET, как от греха. https://www.codeproject.com/Articles/253444/PInvoke-Performance ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2018, 03:53 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
hVosttМожно не нести здесь подобную хрень? А можно на будущее вбросов оффтоповых не делать и за выражениями следить, когда задают простой и достаточно четко сформулированный вопрос? Ты ответил кстати, во втором посте, я оценил. С галкой тоже разобрались. В API я разбираюсь лучше, в механизмах .Net ты разбираешься лучше, мне эти механизмы до такой степени не нужны. Порассуждать о "вообще" интересно, мне -нет. Пора уже научиться уважать друг друга. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2018, 04:34 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
hVosttработая с криптографией Ух ты. А чего криптографического можно придумать, если не секрет, что стандартных средств фреймворка не хватило? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2018, 11:44 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
Дмитрий77А можно на будущее вбросов оффтоповых не делать и за выражениями следить, А можно на будущее не декларировать свои фантазии? «Мне так нравится, мне так удобно, мне плевать...» — ок «try/catch тормозит» — какой-то вымышленный бред, не ок Этот форум не ваш личный бесплатный помощник. Я и другие люди всегда рады помочь, но также и другие люди читают и впитывают то, что тут пишут. Дмитрий77Пора уже научиться уважать друг друга. Я просто поинтересовался, ты меня грубо отправил читать какие-то твои темы, как будто я их не читал. И да, на этом форуме люди общаются, рассуждают, обсуждают. В этом есть много пользы для всех. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2018, 14:45 |
|
Снять атрибут "скрытый" с файла (программно).
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныУх ты. А чего криптографического можно придумать, если не секрет, что стандартных средств фреймворка не хватило? .NET по сей день очень беден по части работы с криптографией, особенно когда это касается ГОСТ алгоритмов. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2018, 14:46 |
|
|
start [/forum/topic.php?fid=20&fpage=33&tid=1399445]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 148ms |
0 / 0 |