Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Seek()

override long System.IO.Strategies.OSFileStreamStrategy.Seek ( long offset,
SeekOrigin origin )
inlinesealedinherited

Definition at line 191 of file OSFileStreamStrategy.cs.

192 {
193 if (origin < SeekOrigin.Begin || origin > SeekOrigin.End)
194 {
195 throw new ArgumentException(SR.Argument_InvalidSeekOrigin, "origin");
196 }
198 {
199 ThrowHelper.ThrowObjectDisposedException_FileClosed();
200 }
201 if (!CanSeek)
202 {
203 ThrowHelper.ThrowNotSupportedException_UnseekableStream();
204 }
205 long filePosition = _filePosition;
206 long num = origin switch
207 {
208 SeekOrigin.Begin => offset,
209 SeekOrigin.End => Length + offset,
210 _ => _filePosition + offset,
211 };
212 if (num >= 0)
213 {
214 _filePosition = num;
215 }
216 else
217 {
218 FileStreamHelpers.ThrowInvalidArgument(_fileHandle);
219 }
220 if (_appendStart != -1 && num < _appendStart)
221 {
222 _filePosition = filePosition;
223 throw new IOException(SR.IO_SeekAppendOverwrite);
224 }
225 return num;
226 }

References System.IO.Strategies.OSFileStreamStrategy._appendStart, System.IO.Strategies.OSFileStreamStrategy._fileHandle, System.IO.Strategies.OSFileStreamStrategy._filePosition, System.SR.Argument_InvalidSeekOrigin, System.IO.Strategies.OSFileStreamStrategy.CanSeek, System.SR.IO_SeekAppendOverwrite, System.Runtime.InteropServices.SafeHandle.IsClosed, System.IO.Strategies.OSFileStreamStrategy.Length, System.offset, System.IO.Strategies.FileStreamHelpers.ThrowInvalidArgument(), System.ThrowHelper.ThrowNotSupportedException_UnseekableStream(), and System.ThrowHelper.ThrowObjectDisposedException_FileClosed().