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
MBS( "BinaryFile.Open"; FilePath )   More

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

Blog Entries

This function checks for a license.

Created 12nd June 2017, last changed 19th August 2018


BinaryFile.List - BinaryFile.Position