Как получить размер файла в байтах, не открывая его? И еще плиз напомните, как там удаляются файлы?
А, и еще - как задать в паскале параметр, ну шоб, например, я ввел program.exe -abc из cmd, и шоб юзать в проге это строку abc???
1) FindFirst с именем файла, и в структуре SearchRec будет записана вся информация о файле, включая его размер...
2) процедура Erase
3) ParamCount вернет количество переданных параметров, а ParamStr(i) - сами параметры (в виде строки)
Сорри за тупость, но надо ли закрывать стертый файл? То есть не будет каких-либо конфликтов при обращении приложений к "почти удаленному" файлу?
Нет такого понятия "почти удаленный"... До вызова Erase (кстати, перед вызовом Erase файл нужно закрыть, и об этом написано в хелпе) - файл существует, после вызова уже нет... У тебя же не возникает вопрос, не будет ли конфликтов, после того, как ты нажал "Очистить корзину", но перед тем, как корзина очистится?
Об этом заботится ОС, вот и оставь это для нее...
Добавлено через 3 мин.
А если файл занят каким-то приложением, то он не будет удален... IOresult вернет 5 (File access denied) ...
Во-во, я хотел сказать, что надо ли закрывать удаляемый файл. Просто люблю, когда все работает по правилам.
Кстати erase'ом удаляется и незакрытый файл... Во встроенном хелпе не рылся, но в справочнике моем про закрытие ничего не сказано. Хотя справочник датируется 92-м годом... Пора менять.
Кстати, можно ли (возможно я наглею...) заставить pas читать файлы не формата 8.3?
И вконец вопросик: я пытался взять размер файлы как ты сказал (то бишь FindFirst'ом), в хелпе такое описание структуры SearchRec:
type
{тип SearchRec, использующийся в процедурах FindFirst и FindNext}
SearchRec = record
Fill : array[1..2] of byte;
Attr : byte;
Time : longint;
Size : longint;
Name : string[12];
end;
А мне pas при использовании FindFirst говорит, что тип SearchRec неправильный. Пришлось юзать FileSize с открытием.
Это из-за тупого windos.tpu?
А ты в uses Dos пооставил?
Цитата
Кстати, можно ли (возможно я наглею...) заставить pas читать файлы не формата 8.3?
Можно. Если речь про Турбо Паскаль - то была тема про длинные имена, поищи по форуму, там модуль для этого дела выкладывался, а если FPC, например (ну, или другой современный компилятор) - то он это умеет по определению, без всяких доп. средств...
Цитата
Это из-за тупого windos.tpu?
Чего бы WinDos использовать, если можно просто DOS? В WinDos этот тип называется TSearchRec, соответственно, и названия констант там другие...
Хм... Опять ступил.
volvo, спасибо, благодаря (во многом) тебе был написан чудо батник по перепаковке rar -> 7z, с удалением архива большего размера, то есть теперь свободного пространства на винте поприбавится...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.