File静态方法使用时碰到的问题

赵何祺 2013-10-02 09:16:20

做了个小练习,发现当创建文件后在进行删除刚才创建的文件时就会出现下面的问题:

File这个静态没有dispos接口,所以就没用using方法,不知道这是什么情况,求指教
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace 创建和删除文件
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
SaveFileDialog p_SaveFileDialog = new SaveFileDialog();
if (p_SaveFileDialog.ShowDialog()==DialogResult.OK)
{
File.Create(p_SaveFileDialog.FileName);
}
}

private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog p_OpenFileDialog = new OpenFileDialog();
if (p_OpenFileDialog.ShowDialog()==DialogResult.OK)
{
File.Delete(p_OpenFileDialog.FileName);
}
}
}
}
...全文
67 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵何祺 2013-10-02
  • 打赏
  • 举报
回复
创建的话怎么会覆盖呢? 而且如果用COPY方法的那该如何改进呢?
全栈极简 2013-10-02
  • 打赏
  • 举报
回复
删除File.Delete没有可以,直接在弹出的对话框中选择某个文件然后删除。但是第一个创建的操作是有问题的。 首先,File.Create方法返回一个FileStream对象,这个流应该要关闭掉。你的错就是这个原因造成的。输入如下代码,就不报错了。
FileStream fs = File.Create(p_SaveFileDialog.FileName);
                fs.Close();
然后我想说的是,创建的操作应该是选择某个文件,然后把这个文件File.Copy到另外一个路径,而不是使用File.Create方法。你这样操作的话实际上就是覆盖原文件了,没有什么意义。而且对于jpg这样的图片文件,可能就不能正确的创建(即不能正确的打开)。

110,568

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧