Thread: Get file size
Hello, maybe someone can give an idea how I cat get sizes of file which location is know? Lets say I have table with 200k records, in every record one column indicates full file path on server for ex. "c:\temp\test.txt" etc. and I want to fill that table with file sizes.. I was looking for function in plpgsql or plpgper languages, but I did not found anything what could help me.. Lukas
On Tuesday, September 04, 2012 10:09:42 PM Lukas wrote: > Hello, > > maybe someone can give an idea how I cat get sizes of file which location > is know? > Lets say I have table with 200k records, in every record one column > indicates full file path on server for ex. "c:\temp\test.txt" etc. and I > want to fill that table with file sizes.. > I was looking for function in plpgsql or plpgper languages, but I did not > found anything what could help me.. This wouldn't be a good use for a database function. Write it in your favourite client language and connect to the database from there, where it can run with permissions appropriate to whatever file system it's reading.
On Tue, Sep 4, 2012 at 12:09 PM, Lukas <lukas@fmf.vgtu.lt> wrote: > maybe someone can give an idea how I cat get sizes of file which location > is know? > Lets say I have table with 200k records, in every record one column > indicates full file path on server for ex. "c:\temp\test.txt" etc. and I > want to fill that table with file sizes.. > I was looking for function in plpgsql or plpgper languages, but I did not > found anything what could help me.. If the files you need to read are located within your PGDATA directory, you could get away with using pg_stat_file(). Otherwise, I think you'll need to create a quick function in PL/Python, PL/Perl, or similar. Example: CREATE OR REPLACE FUNCTION file_size (v_fname text) RETURNS bigint AS $$ import os size = None try: size = os.path.getsize(v_fname) except os.error, exc: pass return size $$ LANGUAGE plpythonu VOLATILE STRICT; Josh