Components | All | New | MacOS | Windows | Linux | iOS | ||||
Examples | Mac & Win | Server | Client | Guides | Statistic | FMM | Blog | Deprecated | Old |
BinaryFile.Create
Creates a new file.
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
Creates a new file.This function requires a native path. Use Path.FileMakerPathToNativePath to convert a FileMaker path to a native path if required. If you like to have the user choose the path, you can use FileDialog functions.
For Server be aware that server has limited permissions and may not be able to access all files on a computer.
Examples
Create a file and write Hello:
Set Variable [ $fh ; Value: MBS( "BinaryFile.Create"; "/Users/cs/Desktop/test.txt" ) ]
Set Variable [ $r ; Value: MBS( "BinaryFile.WriteText"; $fh; "Hello World") ]
Set Variable [ $r ; Value: MBS( "BinaryFile.Close"; $fh) ]
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.Length
- BinaryFile.Open
- BinaryFile.ReadByte
- BinaryFile.ReadHex
- BinaryFile.WriteByte
- BinaryFile.WriteFloat
- BinaryFile.WriteHex
- BinaryFile.WriteInt
- BinaryFile.WriteText
- IsError
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