[fpc-devel] Determin file size - how?
Hans-Peter Diettrich
DrDiettrich1 at aol.com
Thu Dec 15 05:04:40 CET 2011
Tomas Hajny schrieb:
>> I wonder how to obtain the size of an file on disk. The only function I
>> could find so far is FileSize, which requires an open File, but nothing
>> for an file name :-(
>>
>> ATM FileSize(TEXT) would help, too, but FileSize only accepts an FILE,
>> not TEXT :-(
>
> What exactly do you want to achieve?
Effectively I'm missing a function FileSize(filename), similar to
FileExists or FileAge, for general use.
> Is it because the file may be
> open as a text and denied sharing wouldn't allow parallel opening for
> reading as an untyped file (as suggested by Vinzent)? If this is the
> case, there is a nasty but completely platform independent hack which
> you could use (based on the fact that the underlying operating
> systems and their APIs make no difference between file and text).
Normally I use TFileStream's, which have a Size property. But I find it
nasty to open an file, when I only want to know its size. FPC (like
Delphi) lacks some basic file/directory handling functions (Size,
Remove, Rename...), at least none are listed in the "File handling
overview". While a Delphi user can use the WinAPI for such tasks, a
cross-platform development system should provide according
platform-independent functions.
> Or is it because you don't want to open the file at all (e.g. to
> avoid modifying the timestamp of the last file access)? If this is
> the case, you probably need to stick to FindFirst, etc.
These subtle problems should be considered by the implementors of such
basic general-purpose functions.
DoDi
More information about the fpc-devel
mailing list