I have a folder structure like this under OS X (I’m aware there it is different in Windows):
./myapp.bin
./proj/a1/fileA11.ext
./proj/a1/fileA12.ext
./proj/a2/fileA21.ext
and so on
I would like to check if fileA11 exists. So I played a lot with FolderItem and GetFolderItem without success. If I don’t add any path it works. Tried with .Child too without success.
Dim dbFile As FolderItem = dbFile = GetFolderItem(“proj/a1/file1.ext”)
If dbFile.Exists Then
…
End If
As I see Dim dbFile As FolderItem = dbFile = GetFolderItem(“”) gives me the relative path to my app like /Users/user/My Xojo Projects/My Project/ (<-- here is myapp.bin, proj folder and so on)
[quote=88581:@Urs Jäggi]
./myapp.bin
./proj/a1/fileA11.ext
./proj/a1/fileA12.ext
./proj/a2/fileA21.ext
and so on
I would like to check if fileA11 exists. So I played a lot with FolderItem and GetFolderItem without success. If I don’t add any path it works. [/quote]
I assume by ./ you mean the folder in which your application is. Then in there you have proj, right ? Here is how you access fileA11.ext. Change f according to what you look for. Here is the code in a pushbutton action :
Sub Action()
dim f as folderitem
f = App.ExecutableFile.Parent.Parent.Parent.Parent
msgbox f.shellpath
f = f.child("proj").child("a1").child("fileA11.ext")
if f.exists then
msgbox f.shellpath+" exists"
end if
End Sub
Don’t understand the Parent.Parent.Parent.Parent not fully but I will sooner or later :)[/quote]
App.ExecutableFile points to the actual Unix executable program file inside the Mac App bundle. A Mac application looks like a file when it is in reality a folder with folders inside. Right click on your application, select Show Package Content and it opens the application bundle (folder).
App.ExecutableFile points to (relative to the app) /Contents/MacOS/. So here are the successive Parent, equivalent to cd … on the command line.
Parent of : Contents/MacOS/ ; cd …
Parent of Contents/MacOS/ : /Contents/ ; cd …
Parent of Contents : / (your Mac app bundle) ; cd …
Parent of the bundle : the folder in which you have placed your Mac app bundle that looks like a file.