|
![]() |
#1 |
Участник
|
А что, стандартная функция не подходит?
X++: print winAPI::deleteFile("C:\\Новая папка\\Текстовый документ.txt"); pause; return; Очевидно, что параметр - это то, что от одного пробела до другого. Если сам параметр внутри себя содержит пробелы, то их надо как-то экранировать. Как? Заключить весь параметр в кавычки. Все просто, если поставить себя на место программиста, пытающегося решить аналогичную проблему. |
|
![]() |
#2 |
Участник
|
Цитата:
А DEL позволяет использовать wildcards. |
|
![]() |
#3 |
Участник
|
Цитата:
![]() 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). |
![]() |
#4 |
Участник
|
Ну и при чем тут экзотика?
![]() 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 |
|
![]() |
#5 |
Участник
|
![]()
Попробуйте так
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. |
|
![]() |
#6 |
Участник
|
Цитата:
Сообщение от Владимир Максимов
![]() А что, стандартная функция не подходит?
X++: print winAPI::deleteFile("C:\\Новая папка\\Текстовый документ.txt"); pause; return; Очевидно, что параметр - это то, что от одного пробела до другого. Если сам параметр внутри себя содержит пробелы, то их надо как-то экранировать. Как? Заключить весь параметр в кавычки. Все просто, если поставить себя на место программиста, пытающегося решить аналогичную проблему.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
![]() |
#7 |
Участник
|
Похоже что не сотрет:
Цитата:
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. |
|