If you use SETFILE, you're making the hashed file look like it was created in the account, by the fact that a VOC pointer exists. The fact that the hashed file is physically elsewhere is immaterial. Hashed files can always be deleted, but the correct method depends on how they were created.
Put another way, if a VOC pointer exists, it's as if the hashed file had been created with CREATE.FILE; without the VOC pointer the hashed file was created with mkdbfile. You can see the creation entry in the log.
Code: Select all
Created By Deleted By
---------- ----------
CREATE.FILE DELETE.FILE
mkdbfile rm (UNIX) or DEL (Windows)
CREATE TABLE DROP TABLE
Stage (in acc) DELETE.FILE
Stage (in dir) rm (UNIX) or DEL (Windows)
UV stage DROP TABLE
With rm (UNIX) or DEL (Windows) you need to recursively delete for dynamic hashed files. For all hashed file type you also need to delete the dictionary portion (D_hashedfilename) if using rm/DEL.