C#中文件创建与删除问题
编译能通过,但是运行则出现异常,“文件“F:\\VStest\\file.txt”正由另一进程使用,因此该进程无法访问该文件。”希望能给出错误原因及修改意见,谢谢。sta...
编译能通过,但是运行则出现异常,“文件“F:\\VStest\\file.txt”正由另一进程使用,因此该进程无法访问该文件。”
希望能给出错误原因及修改意见,谢谢。
static void Main(string[] args)
{
string filepath = @"F:\\VStest\\file.txt";
FileInfo myfile = new FileInfo(filepath);
myfile.Create();
myfile.Delete();
} 展开
希望能给出错误原因及修改意见,谢谢。
static void Main(string[] args)
{
string filepath = @"F:\\VStest\\file.txt";
FileInfo myfile = new FileInfo(filepath);
myfile.Create();
myfile.Delete();
} 展开
1个回答
2013-09-25
展开全部
你这样写,出现这个错误是正常的!
原因是:
你使用Create()方法返回的是一个filestream对象。
你这里没有关闭这个流就对它进行删除!这个时候Delete()方法自然会将抛出一个IOException异常。
这个就好像你在操作windows系统时候,你打开了一个文件,而你又去删除它,结果就出现了删除不了的错误。这是一个道理。
解决的方法是:
string filepath = @"F:\\VStest\\file.txt";
FileInfo myfile = new FileInfo(filepath);
FileStream fs= myfile.Create();
fs.Close();
myfile.Refresh();
myfile.Delete();
代码进行这样修改下就可以了。你可以去试下。
注意:对于使用Create()方法的时候,如果你没有VStest文件夹在创建文件的时候同时也会抱错!
因此在以后使用这个方法的时候注意下判断文件夹是否存在!
原因是:
你使用Create()方法返回的是一个filestream对象。
你这里没有关闭这个流就对它进行删除!这个时候Delete()方法自然会将抛出一个IOException异常。
这个就好像你在操作windows系统时候,你打开了一个文件,而你又去删除它,结果就出现了删除不了的错误。这是一个道理。
解决的方法是:
string filepath = @"F:\\VStest\\file.txt";
FileInfo myfile = new FileInfo(filepath);
FileStream fs= myfile.Create();
fs.Close();
myfile.Refresh();
myfile.Delete();
代码进行这样修改下就可以了。你可以去试下。
注意:对于使用Create()方法的时候,如果你没有VStest文件夹在创建文件的时候同时也会抱错!
因此在以后使用这个方法的时候注意下判断文件夹是否存在!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询