Components | All | New | MacOS | Windows | Linux | iOS | ||||
Examples | Mac & Win | Server | Client | Guides | Statistic | FMM | Blog | Deprecated | Old |
BinaryFile.Open
Opens an existing file for reading.
Component | Version | macOS | Windows | Linux | Server | 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.EOF
- BinaryFile.ReadContainer
- BinaryFile.ReadHex
- BinaryFile.ReadInt
- BinaryFile.ReadPDF
- BinaryFile.ReadText
- BinaryFile.Seek
- BinaryFile.WriteHex
- Files.CanOpenFile
Blog Entries
- MBS Plugin Advent calendar: 3 - BinaryFile
- FileMaker 18 File Script Steps vs. BinaryFile functions
- Tip of the day: Split large files into smaller chunks
This function checks for a license.
Created 12nd June 2017, last changed 19th August 2018