Форум: "Основная";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];
ВнизУдаление файлов по маске Найти похожие ветки
← →
utter © (2006-01-09 18:05) [0]Имеется группа файлов, начинающихся на определенное слово.
Подскажите, пожалуйста, как можно наиболее просто удалить все файлы, начинающиеся на это слово.
Заранее благодарен.
← →
begin...end © (2006-01-09 18:41) [1]Уточните, находятся ли файлы в одном каталоге.
← →
utter © (2006-01-09 18:45) [2]Да, конечно. В одном каталоге
← →
Anatoly Podgoretsky © (2006-01-09 19:03) [3]ShFileOperation
← →
utter © (2006-01-09 19:17) [4]Это высокоуровневое с удалением в Корзину
а нельзя ли как проще и быстрее, Erase"ом или чем то похожим на него?
← →
begin...end © (2006-01-09 19:22) [5]> utter © (09.01.06 19:17) [4]
> Это высокоуровневое с удалением в Корзину
Не включайте флаг FOF_ALLOWUNDO в поле SHFILEOPSTRUCT.fFlags, и будет мимо Корзины.
> а нельзя ли как проще и быстрее, Erase"ом или чем то похожим
> на него?
Можно. Но тогда придётся самостоятельно искать файлы, имена которых удовлетворяют маске, и удалять их по одному.
← →
VirEx © (2006-01-09 19:27) [6]блин, да че тут маятся, сначало найди файл а затем уже и удаляй:
var
FindData: _WIN32_FIND_DATAA;
h:THandle;
...
h:=FindFirstFile(PChar(s+"*.txt"), FindData);
while h<>INVALID_HANDLE_VALUE do begin
// - вот здесь то и удаляй как тебе хочется, хошь через ShFileOperation,
// хошь через DeleteFile
{
File Functions
The following functions are used with files.
AreFileApisANSI
CancelIO
CopyFile
CopyFileEx
CopyProgressRoutine
CreateDirectory
CreateDirectoryEx
CreateFile
CreateIoCompletionPort
DefineDosDevice
DeleteFile
FileIOCompletionRoutine
FindClose
FindCloseChangeNotification
FindFirstChangeNotification
FindFirstFile
FindFirstFileEx
FindNextChangeNotification
FindNextFile
FlushFileBuffers
GetBinaryType
GetCompressedFileSize
GetCurrentDirectory
GetDiskFreeSpace
GetDiskFreeSpaceEx
GetDriveType
GetFileAttributes
GetFileAttributesEx
GetFileInformationByHandle
GetFileSize
GetFileType
GetFullPathName
GetLogicalDrives
GetLogicalDriveStrings
GetQueuedCompletionStatus
GetShortPathName
GetTempFileName
GetTempPath
GetVolumeInformation
LockFile
LockFileEx
MoveFile
MoveFileEx
PostQueuedCompletionStatus
QueryDosDevice
ReadDirectoryChangesW
ReadFile
ReadFileEx
RemoveDirectory
SearchPath
SetCurrentDirectory
SetEndOfFile
SetFileApisToANSI
SetFileApisToOEM
SetFileAttributes
SetFilePointer
SetVolumeLabel
UnlockFile
UnlockFileEx
WriteFile
WriteFileEx
Obsolete Functions
_hread
_hwrite
_lclose
_lcreat
_llseek
_lopen
_lread
_lwrite
OpenFile
SetHandleCount
}
FindNextFile(h,FindData);
if GetLastError=ERROR_NO_MORE_FILES then break;
end;
FindClose(h);
← →
VirEx © (2006-01-09 19:30) [7]можешь привлечь DOS:
asm
mov ax, 7141h ; Delete File
mov ch, MustMatchAttrs ; see below
mov cl, SearchAttrs ; see below
mov dx, seg Filename ; see below
mov ds, dx
mov dx, offset Filename
mov si, WildcardAndAttrs ; see below
int 21h
jc error
end;
← →
utter © (2006-01-09 19:33) [8]Спасибо. Проблема решена
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c