Folder and Files Layout
The location of the main Pimlical folder moved in V-4.x to "Scoped Storage" which is a protected area for Pimlical's storage that cannot be touched or modified by other third party Apps. Normally this is: .../Android/data/com.pimlicosoftware.PimlicalA/files/Pimlical .File Update Mechanism
Files are always updated in real time, so if the device crashes no data should ever be lost. When a record is updated, added or deleted, rather than touching the main DAT file, Pimlical writes all the changes into a SEPARATE file which has "_Updates" appended to the filename. So for the default calendar, updates are written to a file called PimlicalLocalCalendar_Updates.dat.Avoiding conflicts with AntiVirus and "live-scanning" Software
If you see frequent error files complaining about ACCESS DENIED, or a failure to rename a file, the most likely explanation is that you have some Anti-Virus or "live-scanning" software that is locking files that Pimlical created and needs to re-read. If this is the case, you must whitelist Pimlical in their list of Apps to skip over, as otherwise Pimlical cannot operate properly. Properly written software on Windows should not have this issue as such apps can use the Shadow Copy feature in Windows to avoid any conflict, but cross-platform apps often do not do this and actually lock the files directly. They work on the basis that if an App closes a file, it likely won't need it for a while, so there should be time to quickly scan the file before it's needed again. But that does not work well with Pimlical because Pimlical uses a fail-safe mechanism for updating files. Rather than writing out the file directly, it writes to a temporary file with a name like PimlicalLocalCalendar.tmp and then, and ONLY then, if the file was written and closed out without error is the original file deleted (or renamed with a .BAK extensions) and the temporary file renamed to the original filename. So after a file is written, Pimlical often, almost immediately, renames the temporary file and if the AntiVirus app is still scanning the temporary file, the rename operation fails.Forcing Use of SD Card in Android 4.x and other Android OS versions
Note: Android 4.4 (KitKat) no longer makes it possible for a third party app to have full access to your SD card. Although it would be possible to get Pimlical/Android to run with its own folder, there are severe limitations that make it highly unadvisable to do that (in particular, the folder is deleted when the application is uninstalled, and if you move the card to another device, the files are not likely to be visible). However, if you are running an earlier version of Android (4.3 or earlier), the procedure below will allow Pimlical/Android to use the physical sd card. Android 5.0 (Lollipop) restores some of the prior functionality, and so it may yet again be feasible to support your physical SD card. This feature is not regularly tested on each OS release as Google is constantly changing what is and what is not allowed, and since many vendors make custom modifications to the Android OS, it would require an inordinate amount of testing to determine on which devices it might actually work.
Some Android 4.x devices (Ice Cream Sandwich version) support both SD card(s) and what is referred to as Phone Storage or Media Storage. When connected to windows desktop, Windows own File Manager can see Phone/Media Storage as a pseudo-device, but other applications (including Pimlical) can not. In that case, you would have to copy the local calendar file to the desktop using File Manager, sync and copy it back. However, if the Android device does have an SD Card, you will typically want to use that instead of Phone Storage as then you can have Pimlical/Desktop access the folder with the local calendar directly.
There
are devices that do have an SD card that displays normally under
windows, except that Pimlical defaults to using Phone Storage instead
(this is due to the fact that the Android function that normally
returns the file path to the SD card instead returns the path to the
phone storage). If this is the case with your phone, there is a feature
in Pimlical/Android that will still allow you to have Pimlical use the
SD card instead, but this does require a bit of fiddling: Create a one
line text file (in windows or in Android phone) with the name PimlicalStoragePath.txt,
where the one line of text contains the full path to the SD card. For
example, the SD card usually appears as /mnt/sdcard. One some Motorola
phones, the path to the Sdcard is /mnt/sdcard-ext in which case the one
line in the PimlicalStoragePath.txt file would be:
/mnt/sdcard-ext
Then make sure this file appears in the root directory of the path that
Phone Storage appears in. When Pimlical first launches, it checks to
see if a file with this name exists, and if so, uses that path instead
- so this file must be located in the folder that Pimlical first looks
in. If you need assistance in getting this to work properly, contact
technical support. If you are not sure what the path is to your SD
card, you might install a free file manager as most of those will tell
you what the path is to the SD card.
On Samsung phones, the sd card is usually 'extSdCard' - so you would put /mnt/extSdCard in the PimlicalStoragePath.txt file and put that file in /mnt/ (which is basically the root folder above extSdCard and sdcard (the latter being an emulated SD card in internal storage). The path is case-sensitive, so make absolutely sure it is 'extSdCard' and not something like 'ExtSdCard' which will not work.
Also, some newer Android phones (such as Motorola Atrix 2) give you the option of treating the USB connection as either "Mass Storage" or "Media Device" - definitely pick Mass Storage as then it will mount as a regular windows device that can be seen by Pimlical/Desktop.
As users provide more information, here are some additional comments that may be helpful:
Motorola Razr Maxx HD: the location of the Sd card appears to be /mnt/external1. The path /sdcard is not for the SD card at all, but appears to be the virtual Sd card in internal storage. Put the PimlicalStoragePath.txt file (Specifying /mnt/external1) in /sdcard to force Pimlical to use the physical SD card.