Как получить размер файла в байтах, не открывая его? И еще плиз напомните, как там удаляются файлы?
А, и еще - как задать в паскале параметр, ну шоб, например, я ввел program.exe -abc из cmd, и шоб юзать в проге это строку abc???
![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() ![]() |
![]() |
nagim |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Репутация: ![]() ![]() ![]() |
Как получить размер файла в байтах, не открывая его? И еще плиз напомните, как там удаляются файлы?
А, и еще - как задать в паскале параметр, ну шоб, например, я ввел program.exe -abc из cmd, и шоб юзать в проге это строку abc??? |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
1) FindFirst с именем файла, и в структуре SearchRec будет записана вся информация о файле, включая его размер...
2) процедура Erase 3) ParamCount вернет количество переданных параметров, а ParamStr(i) - сами параметры (в виде строки) |
nagim |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Репутация: ![]() ![]() ![]() |
Сорри за тупость, но надо ли закрывать стертый файл? То есть не будет каких-либо конфликтов при обращении приложений к "почти удаленному" файлу?
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Нет такого понятия "почти удаленный"... До вызова Erase (кстати, перед вызовом Erase файл нужно закрыть, и об этом написано в хелпе) - файл существует, после вызова уже нет... У тебя же не возникает вопрос, не будет ли конфликтов, после того, как ты нажал "Очистить корзину", но перед тем, как корзина очистится?
Об этом заботится ОС, вот и оставь это для нее... Добавлено через 3 мин. А если файл занят каким-то приложением, то он не будет удален... IOresult вернет 5 (File access denied) ... |
nagim |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Репутация: ![]() ![]() ![]() |
Во-во, я хотел сказать, что надо ли закрывать удаляемый файл. Просто люблю, когда все работает по правилам.
Кстати 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? |
Артемий |
![]()
Сообщение
#6
|
![]() Помощник капитана ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 601 Пол: Мужской Реальное имя: Артем Репутация: ![]() ![]() ![]() |
А ты в uses Dos пооставил?
-------------------- Dum spiro spero!
|
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Цитата Кстати, можно ли (возможно я наглею...) заставить pas читать файлы не формата 8.3? Можно. Если речь про Турбо Паскаль - то была тема про длинные имена, поищи по форуму, там модуль для этого дела выкладывался, а если FPC, например (ну, или другой современный компилятор) - то он это умеет по определению, без всяких доп. средств...Цитата Это из-за тупого windos.tpu? Чего бы WinDos использовать, если можно просто DOS? В WinDos этот тип называется TSearchRec, соответственно, и названия констант там другие... |
nagim |
![]()
Сообщение
#8
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Репутация: ![]() ![]() ![]() |
Хм... Опять ступил.
volvo, спасибо, благодаря (во многом) тебе был написан чудо батник по перепаковке rar -> 7z, с удалением архива большего размера, то есть теперь свободного пространства на винте поприбавится... |
![]() ![]() |
![]() |
Текстовая версия | 20.05.2022 8:50 |