![]() |
#1 |
Гость
|
WinApi::shellExecute("DEL"
почему
WinApi::shellExecute("DEL" не работает? можно как-то запустит? |
|
![]() |
#2 |
Участник
|
Лень разбираться
![]() Вот так должно работать: X++: WinApi::shellExecute("cmd", "/c DEL C:\\Test\\dummy.txt"); |
|
![]() |
#3 |
Гость
|
близко. Но из \Temporary Internet Files\*.* не удаляет
|
|
![]() |
#4 |
Участник
|
а \Temporary Internet Files\*.* в "" ?
|
|
![]() |
#5 |
Участник
|
Угу. путь надо в кавычки брать, если пробелы есть
|
|
![]() |
#6 |
Участник
|
У меня из командной строки так тоже не получается.Только если зайти в саму папку и сделать del /p /s *. Тогда все ок.Как это в Аксе - не пробовал.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
![]() |
#7 |
Участник
|
А что, стандартная функция не подходит?
X++: print winAPI::deleteFile("C:\\Новая папка\\Текстовый документ.txt"); pause; return; Очевидно, что параметр - это то, что от одного пробела до другого. Если сам параметр внутри себя содержит пробелы, то их надо как-то экранировать. Как? Заключить весь параметр в кавычки. Все просто, если поставить себя на место программиста, пытающегося решить аналогичную проблему. |
|
![]() |
#8 |
Участник
|
Цитата:
А DEL позволяет использовать wildcards. |
|
![]() |
#9 |
Участник
|
Цитата:
Сообщение от Владимир Максимов
![]() А что, стандартная функция не подходит?
X++: print winAPI::deleteFile("C:\\Новая папка\\Текстовый документ.txt"); pause; return; Очевидно, что параметр - это то, что от одного пробела до другого. Если сам параметр внутри себя содержит пробелы, то их надо как-то экранировать. Как? Заключить весь параметр в кавычки. Все просто, если поставить себя на место программиста, пытающегося решить аналогичную проблему.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
![]() |
#10 |
MCTS
|
Цитата:
А стандартная папку сотрет?
__________________
![]() В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню |
|
![]() |
#11 |
Участник
|
Похоже что не сотрет:
Цитата:
If an application attempts to delete a file that does not exist, the DeleteFile function fails. If the file is a read-only file, the function fails with ERROR_ACCESS_DENIED. To delete a read-only file, you must first remove the read-only attribute.
.......
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 Последний раз редактировалось Alex_KD; 19.12.2007 в 12:04. |
|
![]() |
#12 |
Участник
|
Цитата:
![]() X++: // Удаление файлов по маске static void test_FileSystemObject(Args _args) { COM comFSO = new COM("Scripting.FileSystemObject"); Filename filename = "C:\\Новая папка\\*.txt"; ; // Удалаяет все файлы по маске, даже если они помечены как Read-Only comFSO.DeleteFile(filename); } X++: // Удаление директорий со всем содержимым static void test_FileSystemObject(Args _args) { COM comFSO = new COM("Scripting.FileSystemObject"); Com comFolder; FileFolder_RU fileFolder_RU = "C:\\Новая папка"; ; print "До удаления ", comFSO.FolderExists(fileFolder_RU); if (comFSO.FolderExists(fileFolder_RU)) { comFolder = comFSO.GetFolder(fileFolder_RU); comFolder.delete(true); // true - удалить, даже если каталог Read-Only } print "После удаления ", comFSO.FolderExists(fileFolder_RU); pause; } |
|
|
За это сообщение автора поблагодарили: kashperuk (5), Alenka (1). |
![]() |
#13 |
Участник
|
Ну и при чем тут экзотика?
![]() X++: COM comFSO = new COM("Scripting.FileSystemObject"); FileFolder_RU fileFolder_RU = "C:\\Новая папка"; ; if (comFSO.FolderExists(fileFolder_RU)) comFSO.DeleteFolder(fileFolder_RU, true); // true - удалить, даже если каталог Read-Only |
|
![]() |
#14 |
Участник
|
![]()
Попробуйте так
X++: filename path; filename fileName; filename fileExt; int nHandle; container c; ; ...... ...... fileExt = "*.txt"; c = WinApi::findFirstFile(path + fileExt); nHandle = conpeek(c, 1); fileName = conpeek(c, 2); while (strLen(fileName)) { WinApi::deleteFile(path + "\\" + fileName); fileName = WinApi::findNextFile(nHandle); } ... Параметры для нее в макросе Winapi Последний раз редактировалось nano3; 20.12.2007 в 12:39. |
|
![]() |
#15 |
Участник
|
О. То о чем я и говорил - перебор файлов надо писать.
А если в папке еще и под-папки есть, то этот метод не будет работать, придется еще его расширять на поиск в подпапках... |
|
![]() |
#16 |
Участник
|
Цитата:
Цитата:
If the file is a read-only file, the function fails with ERROR_ACCESS_DENIED. To
delete a read-only file, you must first remove the read-only attribute.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
![]() |
#17 |
Участник
|
Если кого-то заинтересовал объект Scripting.FileSystemObject и что еще при помощи него можно сделать, то его описание на русском языке с примерами использования можно посмотреть здесь
http://kodu.neti.ee/~juri4/vfpplus/vbs_fso_01_ru.htm Правда, примеры использования там приведены в синтаксисе FoxPro. Но перевести их в X++ особого труда не составит. Ну, или ищите на сайте Microsoft ![]() |
|
![]() |
#18 |
Участник
|
Цитата:
Сообщение от Владимир Максимов
![]() Если кого-то заинтересовал объект Scripting.FileSystemObject и что еще при помощи него можно сделать, то его описание на русском языке с примерами использования можно посмотреть здесь. Ну, или ищите на сайте Microsoft
![]() ![]() ![]() |
|