Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
3 / 3 / 1
Регистрация: 25.03.2011
Сообщений: 178
1

Как избежать смены текущей папки при работе с файлами?

09.09.2014, 20:47. Показов 1361. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
А вот у меня проблема поинтереснее. Первое открытие файла происходит нормально, а после закрытия и повторной попытки открыть - не находится.
В пути указывается только имя файла, то есть искаться должен в текущем каталоге. Может ли программа в ходе выполнения по своей воле менять папку? Кто может чего посоветовать?

Добавлено через 10 минут
Всё-таки происходит смена папки. Как запретить?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.09.2014, 20:47
Ответы с готовыми решениями:

Как избежать смены 3d вида при движении объектов?
если применить к объекту rotationX,Y,Z - и потом изменять его координаты - то и этот вид меняется...

Как избежать смены релевантности страницы, при нахождении в индексе более 100 страниц
Неоднократно наблюдаю, картину, при наполнении сайта от 80 страниц, релевантная страница меняется с...

Как избежать переполнения при работе с большими числами
При написании программы возникла проблема с большими числами. У меня есть число, которое копится в...

Избежать смены вида кнопки при наведении курсора
При наведении на кнопку она заливается определенным цветом,мне не нужна эта зливка,как её убрать?

11
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
09.09.2014, 22:31 2
Первое открытие файла происходит нормально, а после закрытия и повторной попытки открыть - не находится
Не верю! У меня открывается нормально
Другими словами: проблема не озвучена!
В каком пути? Как он получен? Как использован?
0
3 / 3 / 1
Регистрация: 25.03.2011
Сообщений: 178
09.09.2014, 22:56  [ТС] 3
Сообщение было вырвано из другой темы.
Visual Basic
1
Open "text.txt" For Input As #1
Вроде бы само вылечилось.
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
09.09.2014, 23:14 4
Указывай полный путь
0
Модератор
9724 / 3685 / 871
Регистрация: 22.02.2013
Сообщений: 5,530
Записей в блоге: 78
09.09.2014, 23:33 5
Цитата Сообщение от Gambit_88 Посмотреть сообщение
Всё-таки происходит смена папки. Как запретить?
Через диалог открытия открываешь? Там есть флаг OFN_NOCHANGEDIR, который предотвращает изменение текущей директории.
1
3 / 3 / 1
Регистрация: 25.03.2011
Сообщений: 178
09.09.2014, 23:57  [ТС] 6
Цитата Сообщение от Gambit_88 Посмотреть сообщение
вылечилось
Показалось, работает через раз.
Цитата Сообщение от Alex77755 Посмотреть сообщение
Указывай полный путь
Ну это самый очевидный выход. А с относительным путём никак что ли?

The trick, открываю в коде.
0
Модератор
9724 / 3685 / 871
Регистрация: 22.02.2013
Сообщений: 5,530
Записей в блоге: 78
09.09.2014, 23:58 7
Цитата Сообщение от Gambit_88 Посмотреть сообщение
открываю в коде.
Как вообще устанавливаются пути? Перед открытием установи путь и текущий диск.
0
3 / 3 / 1
Регистрация: 25.03.2011
Сообщений: 178
10.09.2014, 00:09  [ТС] 8
Путь указывается в кавычках, как писал выше. При таком указании файл ищется в одной папке с документом, модуль которого и пишу.

Удалось, наконец, заснять непредсказуемое поведение.
Вложения
Тип файла: zip Video_2014-09-10_020412.zip (1.27 Мб, 9 просмотров)
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
10.09.2014, 00:40 9
Лучший ответ Сообщение было отмечено Gambit_88 как решение

Решение

А с относительным путём никак что ли?
рядом с активной книгой:
Visual Basic
1
ActiveWorkbook.Path & "\text.txt"
Добавлено через 3 минуты
Если в ворде, то активный документ ActiveDocument.Path

Добавлено через 1 минуту
При таком указании файл ищется в одной папке с документом, модуль которого и пишу
Уверен?
1
2785 / 717 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
10.09.2014, 10:23 10
Текущая папка может меняться в процессе работы офисных приложений, ещё можно менять принудительно такими функциями, как ChDir, Dir, но я бы не советовал это делать - не надёжно. Лучше конструировать полный путь, пусть даже относительно документа, как пишет Alex77755 постом выше.
1
3 / 3 / 1
Регистрация: 25.03.2011
Сообщений: 178
10.09.2014, 10:30  [ТС] 11
Цитата Сообщение от Alex77755 Посмотреть сообщение
Уверен?
Уверен, ведь иногда работает, а потом переходит на 5 уровней вверх, в папку Мои документы.
Если в аргументе Путь не указана информация о диске и пути, файл открывается в текущей папке.
С Path ошибок нет, спасибо.
0
Модератор
9724 / 3685 / 871
Регистрация: 22.02.2013
Сообщений: 5,530
Записей в блоге: 78
10.09.2014, 10:46 12
Цитата Сообщение от Gambit_88 Посмотреть сообщение
Уверен, ведь иногда работает, а потом переходит на 5 уровней вверх, в папку Мои документы.
Это может быть из-за диалога открытия файла, который меняет текущую директорию приложения.
Цитата Сообщение от mc-black Посмотреть сообщение
как ChDir
кроме нее нужно использовать ChDrive, т.к. в VB/VBA есть такое понятие как текущий диск, и на каждом диске есть текущая папка.
1
10.09.2014, 10:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.09.2014, 10:46
Помогаю со студенческими работами здесь

Как при инициализации файловой переменной указать файл из текущей папки?
Как при инициализации файловой переменной указать файл из текущей папки? Например: Assign(F,...

Как избежать смены вида курсора?
пишу javascript-код, позволяющий рисовать некие детали на канве мышью. Но вот незадача- если...

Как получить номер текущей страницы документа MS Word при работе через OLE
Пишу на C++ Builder XE. Необходимо прочитать документ: найти в нем определенную таблицу и прочитать...

При открытии папки с файлами создаются новые папки / Windows 7
Здравствуйте! У меня Windows 7, недавно стали создаваться автоматическом папки. Только открою какую...

При открытии папки с файлами создаются новые папки
Здраствуйте ! У меня Windows 7 недавно стали создаватся автоматическом папки -New...

Как отключить диалог при работе с док файлами?
Делую прогу. Из БД выбираю инфу и формирую MS Word-овский (rtf) документ (подсмотрел у MS). В MS...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru