我需要做一个简单的检查,如果一个 dds 文件是有效的格式。我只需要对 dds 文件进行一般检查,所以我不需要检查它是否是 dxt1、dxt5、dx10 等。例如,如果我有一个 png 图像并且我将扩展名重命名为 .dds dds 格式当然会出错,然后我需要告诉用户他正在尝试使用格式错误的 dds 文件。但是,如果我有一个确实具有正确文件格式的 dds,我将不需要做任何进一步的调查,因为我不关心它是什么类型的 dds 文件(此时)。所以我只需要读取 dds 文件的部分,这些部分将在所有 dds 文件上保持不变。我想我可以以某种方式读取 dds 标题和幻数。我必须对 png 文件进行相同的验证,然后我正在读取 png 标题,如下所示:
var png = new byte[] { 0x89, 0x50, 0x4e, 0x47, 0x0D, 0x0A, 0x1A, 0x0A }
using (FileStream fs = new FileStream(fileToCheck, FileMode.Open, FileAccess.Read))
{
if (fs.Length > buffer.Length)
{
fs.Read(buffer, 0, buffer.Length);
fs.Position = (int)fs.Length - endBuffer.Length;
fs.Read(bufferEnd, 0, endBuffer.Length);
}
fs.Close();
}
for (int i = 0; i < png.Length; i++)
{ …
Run Code Online (Sandbox Code Playgroud) 在C和C++中,main函数的类型为int,在main方法的末尾返回0.如果程序返回0,我知道程序是成功的.但是在c#中,默认情况下main的类型为void(我猜你可以将它改为int并返回0)所以我怎么知道程序在这种情况下是成功的呢?在主方法无效的情况下,我是否必须调试或执行一些调试处理以真正阐明程序是否成功?
我需要在文本文件中替换多个字符串.这是我的代码:
List<string> list = new List<string>();
string Text = File.ReadAllText(temp);
list.Add(Text.Replace("name", name));
list.Add(Text.Replace("name2", name2));
list.Add(Text.Replace("1.0000", CR));
list.Add(Text.Replace("0.6590", CG));
list.Add(Text.Replace("0.0000", CB));
foreach (string txt in list)
{
File.WriteAllText(path, txt);
}
Run Code Online (Sandbox Code Playgroud)
当我调试时,我可以看到一个接一个地替换字符串,但是当下一个字符串即将被替换时,最后一个字符串将返回其旧值.有没有办法在文本文件中替换多个字符串?