C # эквивалент C ++ ostream :: tellp для ограничения размера на дискете

Есть ли C # эквивалент для StreamWriter в C ++ ostream :: tellp? Я портирую какой-то старый код C ++ на C #, но клиент по-прежнему хочет продолжать использовать дискеты (читай: старое оборудование), поэтому мне нужно найти способ найти позицию указателя файла или узнать, сколько я написал в диск уже.

Ниже приведен метод, который я создал до сих пор:

 private bool isDisketteBoundary(ref StreamWriter swOutput, int nCurrentDisketteNo) {
// Get current file pointer position
// long filePosition = nOStream.tellp(); <-- C++ code
long filePosition = 0; // <-- needs to change to find file pointer position

// Valid?
if(filePosition != -1) {
// Is the new size over a boundary?
float numDiskettes = (float)((float)filePosition / (float)Constants.DisketteSize);
int disketteCount = Convert.ToInt32(Math.Ceiling(numDiskettes));

// Is the diskette count larger than the current index?
return (nCurrentDisketteNo < disketteCount) ? true : false;
}
else {
throw new Exception("Unable to get file pointer from StreamWriter");
}
}

1

Решение

Я думаю, что вы ищете

swOutput.BaseStream.Position

см MSDN: http://msdn.microsoft.com/en-us/library/system.io.stream.position.aspx .

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]