C# 如何检查文件是否已存在?

C# 如何检查文件是否已存在?,c#,C#,如果我向右移动轨迹栏,它将保存第一个文件000000.bmp,然后在下次保存文件000001.bmp时将其升高一个 但是如果我现在回到左边一次,变量fn是000002.bmp,它不存在,它将保存前一个图像,它实际上是000001.bmp 当我移动到左后卫时,它应该是000001.bmp。请看它是否存在,什么也不做 如果不进行此检查,它将一直保存文件,如果我将轨迹栏向右或向左移动,那么几次之后,我将拥有90多个几乎相同的文件 我怎样才能解决它? 变量PbtoBitmap是表单1顶部的int类型,我

如果我向右移动轨迹栏,它将保存第一个文件000000.bmp,然后在下次保存文件000001.bmp时将其升高一个

但是如果我现在回到左边一次,变量fn是000002.bmp,它不存在,它将保存前一个图像,它实际上是000001.bmp

当我移动到左后卫时,它应该是000001.bmp。请看它是否存在,什么也不做

如果不进行此检查,它将一直保存文件,如果我将轨迹栏向右或向左移动,那么几次之后,我将拥有90多个几乎相同的文件

我怎样才能解决它? 变量PbtoBitmap是表单1顶部的int类型,我刚用0开始它。 PbToBitmap=0

我说的轨迹栏是trackBar1,在滚动事件中,我调用这个saveFormPicutreBoxtMobitMappingDrawings函数

这是trackBar1滚动事件:

public void SaveFormPicutreBoxToBitMapIncludingDrawings()
{
    using (Bitmap b = new Bitmap(pictureBox1.Width, pictureBox1.Height))
    {
        pictureBox1.DrawToBitmap(b, new Rectangle(0, 0, pictureBox1.Width, pictureBox1.Height));
        string fn = @"d:\PictureBoxToBitmap\" + PbToBitmap.ToString("D6") + ".bmp";
        if (File.Exists(fn))
        {
        }
        else
        {
            b.Save(@"d:\PictureBoxToBitmap\" + PbToBitmap.ToString("D6") + ".bmp"); // to fix/repair give gdi error exception.
            PbToBitmap++;
        }
    } 
}

不清楚您试图实现什么,但您正在从计数器
PbToBitmap
生成文件名。这个计数器只会增加,不会减少,所以它当然会“继续保存文件…”

如果您想让计数器与您所在的帧匹配,请去掉
PbToBitmap
trackBar1\u滚动
调用:

private void trackBar1_Scroll(object sender, EventArgs e)
{
    currentFrameIndex = trackBar1.Value;
    textBox1.Text = "Frame Number : " + trackBar1.Value;
    wireObject1.woc.Set(wireObjectAnimation1.GetFrame(currentFrameIndex)); 

    trackBar1.Minimum = 0;
    trackBar1.Maximum = fi.Length - 1;
    setpicture(trackBar1.Value);
    pictureBox1.Refresh();

    button1.Enabled = false;
    button2.Enabled = false;
    button3.Enabled = false;
    button4.Enabled = false;
    button8.Enabled = false;
    SaveFormPicutreBoxToBitMapIncludingDrawings();
    return;
}
保存格式PictureBoxTobitMappingLudingDrawings更改为:

string dir = @"d:\PictureBoxToBitmap";
SaveFormPictureBoxToBitMapIncludingDrawings(dir, currentFrameIndex);

我不明白。
File.Exists有什么问题?
?这没有多大意义。什么有多大意义Lee?您可以先向我们展示
PbToBitmap
的含义以及您所说的“轨迹栏”。Dour刚刚用信息更新了我的问题。
public void SaveFormPictureBoxToBitMapIncludingDrawings(string dir, int frameIndex)
{
    string fn = Path.Combine(dir, frameIndex.ToString("D6") + ".bmp");
    if (!File.Exists(fn))
    {
        using (Bitmap b = new Bitmap(pictureBox1.Width, pictureBox1.Height))
        {
            pictureBox1.DrawToBitmap(b, new Rectangle(0, 0, pictureBox1.Width, pictureBox1.Height));
            b.Save(fn);
        }
    } 
}