Version: Unity 6.7 Alpha (6000.7)
LanguageEnglish
  • C#

AsyncReadManager.GetFileInfo

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Declaration

public static ReadHandle GetFileInfo(string filename, FileInfoResult* result);

Parameters

Parameter Description
filename The name of the file to query.
result A struct that this function fills in with information about the file upon completion of this asynchronous request.

Returns

ReadHandle A read handle that you can use to monitor the progress and status of this GetFileInfo command.

Description

Gets information about a file.

This function gets information about the specified file asynchronously without opening the file. On completion of the asynchronous operation, the result parameter's FileInfoResult.FileState member reports whether the file exists (FileState.Exists) or not (FileState.Absent). If the file exists, the result parameter's FileInfoResult.FileSize member reports the size of the file in bytes. If the file doesn't exist, the size is reported as zero.

GetFileInfo does not copy result. It stores the pointer and writes the file information through it on a worker thread when the operation completes, which can be after the call returns. Keep the FileInfoResult that result refers to valid and pinned until the returned ReadHandle has a status other than ReadStatus.InProgress. Otherwise, the garbage collector can move or free the memory before the write occurs. Until the operation completes, FileInfoResult.FileState has its initial value of FileState.Absent, which is the same value that a missing file produces, so treat the result as final only after the handle completes.

Warning: A fixed statement around the GetFileInfo call pins the FileInfoResult only for the duration of its block, not for the asynchronous operation that continues after the block exits. This is a common mistake in async methods, where the compiler places locals that outlive an await on the managed heap. Pin the memory for the whole operation.