FileOps copy file mystery

Doug Easterbrook doug at artsman.com
Wed Oct 23 22:56:35 UTC 2024


hi Andrew

one possible answer for the mystery of the file existing by not being copied is that 

it truly does exist

it is in use by the PDF creation process because the file starts empty and gets fulled up as the report is processed.

Then (and only then) does omnis ‘close’ the file after the PDF is created.


The point is, that the OS will not let you copy a file that is in use for write purposes.    So while it appears to be there, it can't be copied until it is closed.


I think that might be what you are seeing.


so you need to have a mechanism for knowing then the creation process is done and the file is closed.



so, you might try 
1) checking if it exists
2) opening the file and if you get an error
 — perhaps like this one I saw this in the Fileops constants kFileOpsCantOpenLockedFile
 — or some other indication that the file is still locked…
3) then wait.

or use fileops to get the length of the file every second (in a wait loop)

if it is non-zero and the file size not longer changes, then you can copy it.


anyway. the exact error you’d be looking for, I’m not sure,  but I think trying to open it exclusive will generate an error on you until the omnis PDF process is finished with it, then you’d get an ok on the open.    once you get that, then you can close and copy the file.








Doug Easterbrook
Arts Management Systems Ltd.
mailto:doug at artsman.com
http://www.artsman.com
Phone (403) 650-1978

> On Oct 23, 2024, at 2:49 PM, surfway.bigpond.com via omnisdev-en <omnisdev-en at lists.omnis-dev.com> wrote:
> 
> Thanks Wayne for the suggestions which I did check and I do those tests and create the folder first if needed
> 
> The solution ended up coming from a previous post regarding the delay in creating the PDF and trying to copy it nanoseconds before it was created so I put a timer in and it no works 
> 
> What was and still is confusing though is before I do the copyfile I do a doesfileexist and that reports true so a mystery still to solve
> 
> The problem came about because I am changing my PDF code from 
> 
> Do $root.$prefs.$macosdesttype.$assign(kPDF) (which didn’t have a delay or the problem)
> 
> To
> 
> Calculate $cdevice as kDevOmnisPDF
> 
> 
> Andrew McVeigh
> Surfway Real Solutions
> Phone 02 44412679 Mobile 0418428016
> www.surfway.com.au
> www.berrarabeach.com.au
> 
> <http://www.surfway.com.au/> <http://www.surfway.com.au/>
>> On 24 Oct 2024, at 2:18 AM, Wayne Germann <wgermann at PACIFIC.EDU> wrote:
>> 
>> Make sure you check the permissions of where the file is and where it is going to.   Also, if you are placing the file or folder of files inside a folder that doesn't exist...you have to create it first.   
>> 
>> -----Original Message-----
>> From: omnisdev-en <omnisdev-en-bounces at lists.omnis-dev.com> On Behalf Of Michael Mantkowski
>> Sent: Wednesday, October 23, 2024 5:04 AM
>> To: 'OmnisDev List - English' <omnisdev-en at lists.omnis-dev.com>
>> Subject: RE: FileOps copy file mystery
>> 
>> CAUTION: This email originated from outside of Pacific. Do not click any links or open attachments if this is unsolicited email.
>> 
>> Hi Andrew,
>> 
>> Is it possible your two local variables are tied to a parameter / field / variable or time reference?  Any reversable blocks involved that be in called methods that set these variables?
>> 
>> Instead of a breakpoint, try setting up an Ok message to display those variables just before your copy command, see if they show that they are set as you think they should be.
>> 
>> Sometimes breakpoints allow the system to catchup with things that are happening in the stack that makes it hard to trace down something like this.
>> 
>> *********************************************************************
>> Michael Mantkowski
>> ClienTrax Software
>> 1-614-875-2245
>> *********************************************************************
>> 
>> 
>> -----Original Message-----
>> From: omnisdev-en On Behalf Of surfway.bigpond.com via omnisdev-en
>> Sent: Wednesday, October 23, 2024 12:16 AM
>> To: OmnisDev List - English <omnisdev-en at lists.omnis-dev.com>
>> Cc: surfway.bigpond.com <surfway at bigpond.com>
>> Subject: FileOps copy file mystery
>> 
>> I have this line of code to copy a file from one directory to another
>> 
>> Do FileOps.$copyfile(lfrompath,ltopath) Returns lerror
>> 
>> When I run it comes up with an error 101201 even though the file and paths do exist. The file does not get copied. The variables are all local
>> 
>> So I put a breakpoint on the line to check what the lfrompath and ltopath values are and they all look correct and the line then works
>> 
>> So the Breakpoint makes it work
>> 
>> What am I missing?
>> 
>> Andrew McVeigh
>> Surfway Real Solutions
>> Phone 02 44412679 Mobile 0418428016
>> www.surfway.com.au
>> www.berrarabeach.com.au
>> 
>> _____________________________________________________________
>> Manage your list subscriptions at https://lists.omnis-dev.com Start a new message -> mailto:omnisdev-en at lists.omnis-dev.com
>> 
>> _____________________________________________________________
>> Manage your list subscriptions at https://lists.omnis-dev.com Start a new message -> mailto:omnisdev-en at lists.omnis-dev.com
>> _____________________________________________________________
>> Manage your list subscriptions at https://lists.omnis-dev.com
>> Start a new message -> mailto:omnisdev-en at lists.omnis-dev.com
> 
> _____________________________________________________________
> Manage your list subscriptions at https://lists.omnis-dev.com
> Start a new message -> mailto:omnisdev-en at lists.omnis-dev.com



More information about the omnisdev-en mailing list