You do not say what operating system, but for example, on Windows, the 
following function works:

SQLITE_PRIVATE void _GetFileAttributes(sqlite3_context *context, int argc, 
sqlite3_value **argv)
{
    sqlite3_result_int(context, 
GetFileAttributesW(sqlite3_value_text16(argv[0])));
}

which is then declared to SQLite function interface (for connection db) thus:

nErr += sqlite3_create_function(db, "GetFileAttributes", 1, 
SQLITE_ANY|SQLITE_DETERMINISTIC,  0, _GetFileAttributes,0, 0);

Returning the file attributes for the given pathspec, or -1 if it does not 
exist.


SQLite version 3.8.7 2014-10-09 15:08:17
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> select getfileattributes('D:\');
22
sqlite> select getfileattributes('D:\momo');
-1
sqlite> select getfileattributes('D:\source\sqlite\sqlite3s.exe');
32
sqlite> select getfileattributes('D:\source\sqlite');
16
sqlite>

You do similar on Unices just substitute the appropriate call to get the file 
attributes ...

>-----Original Message-----
>From: sqlite-users-boun...@sqlite.org [mailto:sqlite-users-
>boun...@sqlite.org] On Behalf Of Krzysztof
>Sent: Friday, 10 October, 2014 12:21
>To: General Discussion of SQLite Database
>Subject: [sqlite] Check if file exists in SQL syntax?
>
>Hi,
>
>I'm collecting file names (full paths) in sqlite table. Each day I
>need to remove non existing files from this table (thousands records).
>For now I'm selecting all records and then checking if file exists
>using C++ routine and if not then deleting it. I'm wondering if SQLite
>has such function (could not find it in core functions). For example I
>would like to call something like:
>
>CREATE TABLE my_table {
>  id INTEGER PRIMARY KEY,
>  filename TEXT,
>  tags TEXT
>}
>
>DELETE FROM my_table WHERE NOT FileExists(filename)
>
>Regards
>_______________________________________________
>sqlite-users mailing list
>sqlite-users@sqlite.org
>http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users



_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to