Topics
All
MacOS
(Only)
Windows
(Only)
Linux
(Only, Not)
iOS
(Only, Not)
Components
Crossplatform Mac & Win
Server
Client
Old
Deprecated
Guides
Examples
Videos
New in version:
9.3
9.4
9.5
10.0
10.1
10.2
10.3
10.4
10.5
10.6
Statistic
FMM
Blog
BinaryFile.Open
Opens an existing file for reading.
| Component | Version | macOS | Windows | Linux | Server | FileMaker iOS SDK |
| BinaryFile | 7.3 | Yes | Yes | Yes | Yes | Yes |
Parameters
| Parameter | Description | Example |
|---|---|---|
| FilePath | The native file path. Something like "/Users/cs/desktop/test.txt" on Mac and "C:\Programs\Data\test.txt" on Windows. Files without path end in the root directory on Mac. | "test.txt" |
Result
Returns reference number or error.
Description
Opens an existing file for reading.Examples
Open file:
MBS( "BinaryFile.Open"; "/Users/cs/Desktop/test.txt" )
Split files into smaller chunks:
Set Variable [ $InputPath ; Value: "/Users/cs/Desktop/test.mp4" ]
Set Variable [ $ChunkSize ; Value: 10*1024*1024 ]
#
Set Variable [ $InputStream ; Value: MBS( "BinaryFile.Open"; $inputPath ) ]
If [ MBS("IsError") ]
Show Custom Dialog [ "Failed to open file." ; $InputStream & ¶ & $InputPath ]
Exit Script [ Text Result: ]
End If
Set Variable [ $InputLength ; Value: MBS( "BinaryFile.Length"; $InputStream ) ]
Set Variable [ $InputPosition ; Value: 0 ]
Set Variable [ $Counter ; Value: 1 ]
Loop
# Read chunk
Set Variable [ $Chunk ; Value: MBS( "BinaryFile.ReadHex"; $InputStream; $ChunkSize ) ]
#
# Write Chunk
Set Variable [ $OutputPath ; Value: $InputPath & "." & $Counter ]
Set Variable [ $OutputStream ; Value: MBS( "BinaryFile.Create"; $OutputPath ) ]
If [ MBS("IsError") ]
Show Custom Dialog [ "Failed to create file." ; $InputStream & ¶ & $OutputPath ]
Set Variable [ $r ; Value: MBS( "BinaryFile.Close"; $InputStream ) ]
Exit Script [ Text Result: ]
End If
Set Variable [ $r ; Value: MBS( "BinaryFile.WriteHex"; $OutputStream; $Chunk ) ]
Set Variable [ $r ; Value: MBS( "BinaryFile.Close"; $OutputStream ) ]
#
# next
Set Variable [ $InputPosition ; Value: $InputPosition + $ChunkSize ]
Exit Loop If [ $InputPosition > $InputLength ]
Set Variable [ $Counter ; Value: $Counter +1 ]
End Loop
#
# cleanup
Set Variable [ $r ; Value: MBS( "BinaryFile.Close"; $InputStream ) ]
See also
- BinaryFile.Append
- BinaryFile.Length
- BinaryFile.ReadContainer
- BinaryFile.ReadFloat
- BinaryFile.ReadHex
- BinaryFile.ReadInt
- BinaryFile.ReadPDF
- BinaryFile.ReadText
- BinaryFile.Seek
- IsError
Blog Entries
- FileMaker 18 File Script Steps vs. BinaryFile functions
- Tip of the day: Split large files into smaller chunks
Created 12nd June 2017, last changed 19th August 2018
BinaryFile.Length - BinaryFile.Position
Feedback: Report problem or ask question.
Links
MBS Xojo Plugins