Jacqueline: Thanks for responding. I am really stuck on this. I can write the file, and get a list of the files I write, but when I try to read the file using the same code to create the filepaths, etc, the read routine says the file doesn’t exist. It all works in the dev environment. I had used a “_” char in the filenames, so I removed it. The read routine can’t find the file. Very wierd.
I’m going to try to make a very simple test case that I can run on my phone and post it, but I’m going to take a break. I’ve posted my file reading and writing code here, but there is probably too much to go through. Thanks for responding, Bill --saves an arbitrary array to the waterdetective local storage folder --fname is the name of the db, tNameExt -"_Wkng" for added files, or "_Dwnld" for downloaded files. on saveArrayToLocal fName,tArray put fixUpFName(fName) into fName if fname contains "meterReadingsA" then --breakpoint end if if the last char of fName is cr then delete the last char of fName end if put getPathToUserDocuments() into tFloc put tFloc into tFolder --put tFloc&"/"&"waterdetective" into tFolder checkCreateFolder tFolder put tFolder&"/"&fName into tDataFile delete file tDataFile put arrayEncode(tArray) into temp put base64encode(temp) into tData put tData into URL ("binfile:"&tDataFile) --put tData into URL ("file:"&tDataFile) wait 2 seconds --This is for testing with debug if there is a file tDataFile then put "Yes" into x put tDataFile into theLocalPath else put "No" into x end if end saveArrayToLocal on deleteLocalTempFiles tFileNameAddon put checkCreateLocalFolder() into tFolderPath put getTheLocalFiles() into tFiles repeat for each line tFile in tFiles put tFile&tFileNameAddon into theFileToDelete if not (char 1 of theFileToDelete is ".") then put tFolderPath&"/"&theFileToDelete into xFilePath delete file xFilePath end if end repeat end deleteLocalTempFiles function getTheLocalFiles put checkCreateLocalFolder() into tFolderPath set the defaultFolder to tFolderPath put files(tFolderPath) into tFiles return tFiles end getTheLocalFiles function isThereALocalFile fName put fixUpFName(fName) into fName put getPathToUserDocuments() into tFloc put tFloc&"/"&fName into tDataFile if there is a file tDataFile then return TRUE else return FALSE end if end isThereALocalFile function fixUpFName fName replace "_" with "xx" in fName return fName end fixUpFName --creates local folder and returns the folderPath function checkCreateLocalFolder tFolder put getPathToUserDocuments() into tFloc if tFolder = "" then return tFloc exit checkCreateLocalFolder end if put tFloc&"/"&tFolder into tFolderPath checkCreateFolder tFolderPath return tFolderPath end checkCreateLocalFolder --retrieves an arbitrary array from the waterdetective local storage folder function getArrayFromLocal fName put fixUpFName(fName) into fName if fname contains "meterReadingsA" then --breakpoint end if put getPathToUserDocuments() into tFloc put tFloc&"/"&fName into tFile put isThereALocalFile(fName) into isAFile if isAFile is TRUE then put URL ("binfile:"&tFile) into temp --put URL ("file:"&tFile) into temp put base64decode(temp) into temp put arrayDecode(temp) into tArray else return "Can't find file." end if return tArray end getArrayFromLocal on deleteLocalFile fName put fixUpFName(fName) into fName put getPathToUserDocuments() into tFloc put tFloc&"/"&"waterdetective/"&fName into tFile if there is a file tFile then delete file tFile end if end deleteLocalFile --tFolder is the complete path to the folder to be tested on checkCreateFolder tFolder if there is not a folder tFolder then create folder tFolder end if end checkCreateFolder function getPathToUserDocuments tFolder put specialFolderPath("documents") into tPath if the environment contains "development" then put tPath&"/waterdetective" into tPath end if if tFolder = "" then return tPath else put tPath&"/"&tFolder into tPath end if return tPath end getPathToUserDocuments William A. Prothero https://earthlearningsolutions.org > On Jun 24, 2020, at 9:22 PM, J. Landman Gay via use-livecode > <use-livecode@lists.runrev.com> wrote: > > Mobile is case-sensitive, desktop isn't. The "documents" folder should be all > lower case. > > If that's not the problem then show us the lines of script that both create > the file path and retrieve it. > > -- > Jacqueline Landman Gay | jac...@hyperactivesw.com > HyperActive Software | http://www.hyperactivesw.com > On June 24, 2020 10:06:45 PM prothero--- via use-livecode > <use-livecode@lists.runrev.com> wrote: > >> Added info: >> I’ve tried putting the files in “cache”, in the “Documents” folder directly, >> and using >>> put URL ("file:"&tFile) >> to store the data. Didn’t change anything. >> I also looked at the lesson on reading and writing livecode files. Nothing >> helps. >> >> I’m using Livecode Business 9.6.0 on a Mac running 10.15.5 >> >> This is the last hurdle I have before am finished with this project. Any >> suggestions would be mucho appreciated. >> >> Best, >> Bill >> >> William A. Prothero >> Santa Barbara, CA. 93105 >> http://earthlearningsolutions.org/ >> >>> On Jun 24, 2020, at 5:35 PM, prothero--- via use-livecode >>> <use-livecode@lists.runrev.com> wrote: >>> >>> Folks: >>> I’m having a very weird problem writing then reading the same file on ios. >>> I must be missing something very basic. I’ve checked the path to the file >>> when it is written and it matches exactly to the path when I try to read >>> it. In the read routine, I check for the file’s existence and it says it >>> doesn’t. But when I write the file and immediately check for the file’s >>> existence (in the same handler), it says it exists. I’ve checked the path >>> with the debugger and the path it writes to is exactly the same as the path >>> it looks for the file in. >>> >>> I must be missing something very basic. It works on my dev system, but in >>> the phone, it can’t find the files it just wrote. Is there some kind of >>> permission needed? I’m stumped. >>> >>> Please enlighten me. There must be some really, really basic thing I’m >>> missing. >>> >>> Thanks, >>> Bill >>> >>> --retrieves an arbitrary array from the waterdetective local storage folder >>> >>> function getArrayFromLocal fName >>> >>> put getPathToUserDocuments() into tFloc >>> >>> put tFloc&"/"&"waterdetective/"&fName into tFile >>> >>> if the last char of tFile is cr then >>> >>> delete the last char of tFile >>> >>> end if >>> >>> —It can’t find the file I just wrote >>> if there is a file tFile then >>> >>> put URL ("binfile:"&tFile) into temp >>> >>> put base64decode(temp) into temp >>> >>> put arrayDecode(temp) into tArray >>> >>> else >>> >>> return "" >>> >>> end if >>> >>> return tArray >>> >>> end getArrayFromLocal >>> >>> >>> function getPathToUserDocuments >>> >>> put specialFolderPath("Documents") into tPath >>> >>> return tPath >>> >>> end getPathToUserDocuments >>> >>> on saveArrayToLocal fName,tArray >>> >>> if fname contains "meterReadingsA" then >>> >>> breakpoint >>> >>> end if >>> >>> --put tNameExt after fName >>> >>> if the last char of fName is cr then >>> >>> delete the last char of fName >>> >>> end if >>> >>> put getPathToUserDocuments() into tFloc >>> >>> put tFloc&"/"&"waterdetective" into tFolder >>> >>> checkCreateFolder tFolder >>> >>> put tFolder&"/"&fName into tDataFile >>> >>> delete file tDataFile >>> >>> put arrayEncode(tArray) into temp >>> >>> put base64encode(temp) into tData >>> >>> put tData into URL ("binfile:"&tDataFile) >>> >>> wait 2 seconds >>> >>> if there is a file tDataFile then >>> >>> put "Yes" into x —on ios I get “Yes" >>> >>> put tDataFile into theLocalPath >>> >>> else >>> >>> put "No" into x >>> >>> end if >>> >>> end saveArrayToLocal >>> >>> William A. Prothero >>> Santa Barbara, CA. 93105 >>> http://earthlearningsolutions.org/ >>> >>> _______________________________________________ >>> use-livecode mailing list >>> use-livecode@lists.runrev.com >>> Please visit this url to subscribe, unsubscribe and manage your >>> subscription preferences: >>> http://lists.runrev.com/mailman/listinfo/use-livecode >> >> _______________________________________________ >> use-livecode mailing list >> use-livecode@lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your subscription >> preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode > > > > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode