本文整理汇总了C#中System.IO.FileStream.ReadValueU32方法的典型用法代码示例。如果您正苦于以下问题:C# FileStream.ReadValueU32方法的具体用法?C# FileStream.ReadValueU32怎么用?C# FileStream.ReadValueU32使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.IO.FileStream
的用法示例。
在下文中一共展示了FileStream.ReadValueU32方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: isTFCCompressed
public bool isTFCCompressed()
{
FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read);
fs.Seek(16, SeekOrigin.Begin);
uint magic = fs.ReadValueU32();
fs.Close();
return (magic == 0x9E2A83C1) || (magic.Swap() == 0x9E2A83C1);
}
示例2: Patch
public static unsafe int Patch(string hPatchs, string hSources, string hDests,ProgressBar pBar,Label lab,int FileID)
{
try
{
if (pBar.InvokeRequired == true)
{
SetValue PSetValue = new SetValue(DoSetValue);
SetText LSetText = new SetText(DoSetText);
pBar.Invoke(PSetValue, new Object[] { pBar, 0 });
lab.Invoke(LSetText, new Object[] { lab, "0%" });
}
UInt32 BLOCKSIZE = 16384;
UInt32 temp = 0;
UInt32 read;
byte[] source_md5 = new byte[16];
byte[] patch_dest_md5 = new byte[16];
byte[] block = new byte[BLOCKSIZE];
int MD5Mode = 0;
UInt32 patches = 0;
int already_uptodate = 0,j=1;
double blocks;
FILETIME targetModifiedTime;
DateTime dte = new DateTime() ;
//write回调方法
FileStream Patchs = new FileStream(hPatchs, FileMode.Open, FileAccess.Read, FileShare.Read);
FileStream Sources = new FileStream(hSources, FileMode.Open, FileAccess.Read, FileShare.Read);
FileStream Dests = new FileStream(hDests, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
Hashtable Data = Program.filehash;
// special 'addition' for the dll: since the patch file is now
// in a seperate file, the VPAT header might be right at the start
// of the file, and a pointer at the end of the file is probably missing
// (because all patch generator versions don't append it, the linker/gui
// does this).
Patchs.Seek(0, SeekOrigin.Begin);
temp = Patchs.ReadValueU32(); read = 4;
// it's not at the start of file -> there must be a pointer at the end of
// file then
if (temp != 0x54415056)
{
Patchs.Seek(-4, SeekOrigin.End);
temp = Patchs.ReadValueU32(); read = 4;
Patchs.Seek(temp, SeekOrigin.Begin);
temp = Patchs.ReadValueU32(); read = 4;
if (temp != 0x54415056)
return result.PATCH_CORRUPT;
}
// target file date is by default the current system time
GetSystemTimeAsFileTime(&targetModifiedTime);
// read the number of patches in the file
patches = Patchs.ReadValueU32(); read = 4;
if (Convert.ToBoolean(patches & 0x80000000)) MD5Mode = 1;
// MSB is now reserved for future extensions, anyone wanting more than
// 16 million patches in a single file is nuts anyway
patches = patches & 0x00FFFFFF;
if (!Convert.ToBoolean(MD5Mode))
{
return result.PATCH_UNSUPPORTED;
}
else
{
source_md5 = checksum.FileMD5(Sources, Data, FileID,Program.AdvMOD);
if (source_md5 == null)
return result.PATCH_ERROR;
}
//pBar.Maximum = Convert.ToInt32(patches);
while (Convert.ToBoolean(patches--))
{
int patch_blocks = 0, patch_size = 0;
// flag which needs to be set by one of the checksum checks
int currentPatchMatchesChecksum = 0;
// read the number of blocks this patch has
patch_blocks = Convert.ToInt32(Patchs.ReadValueU32()); blocks = patch_blocks; read = 4;
if (!Convert.ToBoolean(patch_blocks))
{
return result.PATCH_CORRUPT;
}
if (pBar.InvokeRequired == true)
{
SetValue PSetValue = new SetValue(DoSetMax);
pBar.Invoke(PSetValue, new Object[] { pBar, Convert.ToInt32(patch_blocks) });
}
// read checksums
if (!Convert.ToBoolean(MD5Mode))
{
return result.PATCH_UNSUPPORTED;
}
else
{
int md5index;
byte[] patch_source_md5 = new byte[16];
patch_source_md5 = Patchs.ReadBytes(16); read = 16;
if (patch_source_md5 == null)
{
return result.PATCH_CORRUPT;
//.........这里部分代码省略.........
示例3: ReadSave
public IEnumerable<IResult> ReadSave()
{
string fileName = null;
MyOpenFileResult ofr;
ofr = new MyOpenFileResult()
.FilterFiles(
ffc => ffc.AddFilter("sav", true)
.WithDescription("Borderlands 2 Save Files")
.AddAllFilesFilter())
.WithFileDo(s => fileName = s);
if (string.IsNullOrEmpty(this._SavePath) == false &&
Directory.Exists(this._SavePath) == true)
{
ofr = ofr.In(this._SavePath);
}
yield return ofr;
if (fileName == null)
{
yield break;
}
///////////////////////////////////////////
//SPITFIRE1337 MODS
///////////////////////////////////////////
string path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
//using (FileStream fs = File.Create(path)) { }
File.Delete(path + "/mytempsave.sav");
File.Delete(path + "/savegame.sav");
File.Copy(fileName, path + "/mytempsave.sav");
string profileid = "";
string deviceid = "";
string consoleid = "";
Stream input1 = new FileStream(fileName, FileMode.Open);
// Ensure that the target does not exist.
//Stream input = new Stream(fs);
var check = input1.ReadValueU32(Endian.Big);
input1.Close();
if (check == 0x434F4E20)
{
//MessageBox.Show("This is a xbox save");
yield return new DelegateResult(() =>
{
DJsIO io = new DJsIO(fileName, DJFileMode.Open, true);
io.Position = 0x371;
profileid = io.ReadHexString(8); //Profile ID
io.Close();
})
.Rescue().Execute(
x =>
new MyMessageBox("An exception was thrown (press Ctrl+C to copy):\n\n" + x.ToString(),
"Error")
.WithIcon(MessageBoxImage.Error).AsCoroutine());
STFSPackage xPackage = new STFSPackage(fileName, null);
FileEntry xent = (FileEntry)xPackage.GetFile("savegame.sav");
if (!xent.Extract(path + "/savegame.sav"))
{
//MessageBoxEx.Show("Extraction Failed!", "Failed!", MessageBoxButtons.OK, MessageBoxIcon.[Error])
//xboxextract.ReportProgress(200, "Extraction Failed");
//Thread.Sleep(2000);
//Return
MessageBox.Show("Could not extract savegame.sav. Please use a program like modio or horizon to extract your savegame.sav");
}
else
{
fileName = path + "/savegame.sav";
//MessageBox.Show("File extracted");
//Thread.Sleep(2000);
//MessageBoxEx.Show("Extraction Complete!", "Complete!", MessageBoxButtons.OK, MessageBoxIcon.Information)
}
}
else
{
profileid = "0";
deviceid = "0";
consoleid = "0";
}
yield return new DelegateResult(() =>
{
//.........这里部分代码省略.........