Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBScript/JScript/WSH/WMI/HTA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
blog82
0 / 0 / 0
Регистрация: 13.06.2015
Сообщений: 22
1

Удалить файл, если он существует, и создать файл, если он не существует

12.07.2015, 16:03. Просмотров 2879. Ответов 10
Метки нет (Все метки)

Помогите, два скрипта по созданию и удалению файла

Visual Basic
1
2
3
Dim FSO, MyFile
Set FSO = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("d:\testfile.txt", true)
Visual Basic
1
2
3
4
Dim FSO, file
Set FSO= CreateObject("Scripting.FileSystemObject")
Set file= FSO.GetFile("d:\testfile.txt")
file.delete
Пытаюсь решить учебную задачку, чтобы файл удалялся если он есть и создавался, если его нет, но не хватает более глубоких знаний. Понимаю что нужен If...Then...Else. По идее, при кликах на скрипт будет мигать иконка файла - исчезать и появляться.
Наверное не очень сложное задание.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2015, 16:03
Ответы с готовыми решениями:

Если в ворде больше 10 страниц, то удалить файл
Есть файлы docx (ворд), их много. Задача: если в них меньше допустим 10 страниц - оставить, больше...

Если h-файл существует, подключить его, если не существует, проигнорировать
Как это сделать?

Как открыть файл на чтение и запись, создав его, если его не существует, и перезаписать, если он существует?
Как открыть файл на чтение и запись, создав его, если его не существует, и перезаписать, если он...

Создать текстовый файл с консоли. Если файл с указанным именем уже существует, то произвести добавление
Создание текстового файла с консоли. Если файл с указанным именем уже существует, то произвести...

Файл: Возникает ошибка: невозможно создать файл, если он уже существует. Что я делаю неправильно?
допустим хочу переместить по маске .jpg в поддиректорию DirectoryInfo dir = new...

10
blog82
0 / 0 / 0
Регистрация: 13.06.2015
Сообщений: 22
14.07.2015, 17:15  [ТС] 2
Возможно, для тех кто разбирается это слишком просто, но когда тратишь много времени, чтобы отыскать новый способ, не так просто найти решение.
0
Dmitrii
2606 / 538 / 107
Регистрация: 21.03.2012
Сообщений: 1,043
14.07.2015, 22:23 3
blog82, советую заглянуть сюда: Помоге освоить VBScript.
0
blog82
0 / 0 / 0
Регистрация: 13.06.2015
Сообщений: 22
14.07.2015, 22:51  [ТС] 4
Там ничего полезного, нужны решения конкретных задач.
0
14.07.2015, 22:51
Dmitrii
2606 / 538 / 107
Регистрация: 21.03.2012
Сообщений: 1,043
15.07.2015, 06:15 5
blog82, там, как раз, нужнейшее для вас: справочники и ссылки на материалы, которые помогут достаточно быстро освоить как собственно VBS, так и объектные модели WSH в целом и FSO в частности.
Когда научитесь пользоваться инструментарием, тогда будете писать любые понадобившиеся сценарии самостоятельно.
Цитата Сообщение от blog82 Посмотреть сообщение
... нужны решения конкретных задач
В таком случае придётся ждать, когда кто-нибудь захочет решать ваши задачи за вас.
0
blog82
0 / 0 / 0
Регистрация: 13.06.2015
Сообщений: 22
15.07.2015, 17:01  [ТС] 6
Когда научитесь пользоваться инструментарием, тогда будете писать любые понадобившиеся сценарии самостоятельно.
Вообще-то я уже нашел базовые для этой задачи инструментарии, но нужен код более высокой организации, а это по учебнику сделать сложно.

Добавлено через 8 часов 26 минут
Кстати, как правильнее, проверять есть ли файл, если есть - удалять, если нет - создавать новый, или проверять есть ли файл, если нет - создавать новый, если есть - удалять?
0
Dmitrii
2606 / 538 / 107
Регистрация: 21.03.2012
Сообщений: 1,043
15.07.2015, 17:33 7
Цитата Сообщение от blog82 Посмотреть сообщение
... как правильнее...
В данном случае это безразлично.
0
blog82
0 / 0 / 0
Регистрация: 13.06.2015
Сообщений: 22
16.07.2015, 10:36  [ТС] 8
Dmitrii, может всё-таки правильнее сначала проверять и создавать, так как вероятнее какого-либо файла, прежде, не существует, такой порядок работы программы выглядит логичнее.
0
Dmitrii
2606 / 538 / 107
Регистрация: 21.03.2012
Сообщений: 1,043
16.07.2015, 10:56 9
blog82, нет никакой разницы.
Алгоритмически это выглядит так:
1) проверка И (удаление существующего ИЛИ создание не существующего)
2) проверка И (создание не существующего ИЛИ удаление существующего)

Результаты обоих вариантов тождественны.
0
blog82
0 / 0 / 0
Регистрация: 13.06.2015
Сообщений: 22
17.07.2015, 14:42  [ТС] 10
Dmitrii, схема уже понятна.
Проверка методом FileExists существование файла. Если нет, методом If Then создать первым скриптом, если есть - Else удалить вторым.

Добавлено через 22 часа 57 минут
Dmitrii, первый вариант, получается, осуществить намного проще
1) проверка И (удаление существующего ИЛИ создание не существующего)
так как fso.FileExists("файл") переходит к Then с позитивным результатом, поэтому надо удалять и только потом, Else, создавать.

Для моей версии
2) проверка И (создание не существующего ИЛИ удаление существующего)
которую я считаю более последовательной, надо, чтобы Then работал от негативного результата условия fso.FileExists("файл"). Это возможно как-нибудь сделать?
0
Dmitrii
2606 / 538 / 107
Регистрация: 21.03.2012
Сообщений: 1,043
17.07.2015, 18:32 11
Лучший ответ Сообщение было отмечено blog82 как решение

Решение

Форма вида
Visual Basic
1
If objFS.FileExists(strPath) Then
представляет собой краткую запись.
Полная выглядит так:
Visual Basic
1
If objFS.FileExists(strPath) = True Then
Соответственно, возможны такие равнозначные варианты:
Visual Basic
1
2
3
4
5
If objFS.FileExists(strPath) <> True Then
'
If objFS.FileExists(strPath) = False Then
'
If Not objFS.FileExists(strPath) Then
1
17.07.2015, 18:32
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.07.2015, 18:32

Если файл не существует - создать его
Так как в Pascal abc нету функции IOResult, решил заменить на FileExists, но не получается Вот...

Удалить из заданной директории все файлы, только если в ней существует указанный файл
Удалить из заданной директории все файлы, только если в этой директории существует указанный файл....

Проверить, существует ли каталог, и если не существует - создать
Как средствами VB6 проверить существует ли каталог, и если не существует - создать? DName$ =...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.