我用retroarch。它保存了保存状态的状态和屏幕截图。文件命名如下。
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public string path = @"C:\Users\User\Documents\Retroarch\states\";
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
GetList();
}
public void GetList()
{
int var = 0;
string newVar = ".state" + var;
string[] files = Directory.GetFiles(path, "*");
foreach (var fileExt in files)
{
string p = fileExt;
string e = Path.GetExtension(p);
if (e == ".state" || e == newVar)
{
MessageBox.Show(newVar); //shows .state / no others
}
var++;
MessageBox.Show(newVar); //shows newVar incrementing
MessageBox.Show(e); //shows extension
}
}
}
}
等等。
最终我希望能够显示图像并单击它们以与.state进行交互。
if (e == ".state" || e == newVar)
我的if语句出现问题
authenticated field
它将显示第一个状态但不显示其他状态。我做错了什么?
答案 0 :(得分:0)
尝试此更新。我只更改了if语句的内容。我们检查扩展名是否以“.state”开头。
public void GetList()
{
int var = 0;
string newVar = ".state" + var;
string[] files = Directory.GetFiles(path, "*");
foreach (var fileExt in files)
{
string p = fileExt;
string e = Path.GetExtension(p);
if (e.StartsWith(".state"))
{
MessageBox.Show(newVar); //shows .state / no others
}
var++;
MessageBox.Show(newVar); //shows newVar incrementing
MessageBox.Show(e); //shows extension
}
}
并且,我真的同意Jesse C. Slicer不使用“var”作为变量名称会很好 - 例如可能将其更改为“后缀”。