C# 如何检查文件是否已存在?
如果我向右移动轨迹栏,它将保存第一个文件000000.bmp,然后在下次保存文件000001.bmp时将其升高一个 但是如果我现在回到左边一次,变量fn是000002.bmp,它不存在,它将保存前一个图像,它实际上是000001.bmp 当我移动到左后卫时,它应该是000001.bmp。请看它是否存在,什么也不做 如果不进行此检查,它将一直保存文件,如果我将轨迹栏向右或向左移动,那么几次之后,我将拥有90多个几乎相同的文件 我怎样才能解决它? 变量PbtoBitmap是表单1顶部的int类型,我刚用0开始它。 PbToBitmap=0 我说的轨迹栏是trackBar1,在滚动事件中,我调用这个saveFormPicutreBoxtMobitMappingDrawings函数 这是trackBar1滚动事件:C# 如何检查文件是否已存在?,c#,C#,如果我向右移动轨迹栏,它将保存第一个文件000000.bmp,然后在下次保存文件000001.bmp时将其升高一个 但是如果我现在回到左边一次,变量fn是000002.bmp,它不存在,它将保存前一个图像,它实际上是000001.bmp 当我移动到左后卫时,它应该是000001.bmp。请看它是否存在,什么也不做 如果不进行此检查,它将一直保存文件,如果我将轨迹栏向右或向左移动,那么几次之后,我将拥有90多个几乎相同的文件 我怎样才能解决它? 变量PbtoBitmap是表单1顶部的int类型,我
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);
}
}
}