string path = @$"c:UsersasmetDesktopDatabase1/{username}";
if (File.Exists(path) == false)
{
Console.WriteLine("Creating new file..");
File.Create(path);
// this is where the error is
using (StreamWriter sw = new StreamWriter(path, true))
{
sw.WriteLine(DateTime.Now);
sw.WriteLine($"rf = {rf}");
sw.WriteLine($"pf = {pf}");
sw.WriteLine($"sf = {sf}");
sw.Close();
}
}
我对c#非常陌生,我真的不知道我在做什么,但是每当我试图创建一个新的文件来安全的rf, pf和sf,这些都是数值,它崩溃了。
这是在VS Code中的控制台应用程序。
用户名来自之前代码中的Console.ReadLine()
确切的错误信息:
先。IOException: '进程无法访问文件'c:UsersasmetDesktopDatabase1ausernameienter ',因为该文件正在被其他进程使用。'
DataBase1
只是一个文件夹
我试过查看与问题相关的表单,但经过一段时间的搜索,我从未找到解决方案,我希望代码在指定的位置创建一个新文件,然后将值放在文本文档中,然后关闭它,这样我就可以保存和查看数据以后为学校项目。
每次我输入"用户名"并尝试创建一个新文件。
如果取出:
File.Create(path);
it might work.
StreamWriter(String, Boolean)
初始化使用默认值为指定文件创建StreamWriter类编码和缓冲区大小。如果文件存在,则可以是其中之一覆盖的或追加的如果文件不存在,则返回构造函数创建一个新文件.
您可以使用File.WriteAllLines
创建和写入行文件。根据文档:
创建一个新文件,向文件写入一个或多个字符串,然后关闭该文件 :
if (!File.Exists(path))
{
Console.WriteLine("Creating new file...");
File.WriteAllLines(path,
new[]
{
DateTime.Now.ToString(),
$"rf = {rf}",
$"pf = {pf}",
$"sf = {sf}"
});
}
文件。Create打开一个文件流。你应该切换
using (StreamWriter sw = new StreamWriter(path, true)) **// this is where the error is**
{
sw.WriteLine(DateTime.Now);
sw.WriteLine($"rf = {rf}");
sw.WriteLine($"pf = {pf}");
sw.WriteLine($"sf = {sf}");
sw.Close();
}
using (StreamWriter sw = File.Create(path)) **// this is where the error is**
{
sw.WriteLine(DateTime.Now);
sw.WriteLine($"rf = {rf}");
sw.WriteLine($"pf = {pf}");
sw.WriteLine($"sf = {sf}");
sw.Close();
}
你不能同时打开两个文件流。