如果 readalltext 找不到它,则创建该文件
Create the file if readalltext can't find it
我正在 visual studio 使用 c# 编写应用程序。我想检查 readalltext 是否正确找到文件,如果没有,则需要创建文件并在其中放入零。在伪代码中:
if(x=File.ReadAllText("file.txt")==NULL)
{
File.WriteAllText("file.txt", "0");
x=File.ReadAllText("file.txt");
}
我该怎么做?在此先感谢,我尝试了一些 google 但我可能输入了错误的关键字
您可以使用File.Exists()
方法检查文件是否存在。
string path = "file.txt";
if (!File.Exists(path))
{
File.WriteAllText(path, "0");
}
使用File.Exist()
的问题在于存在检查完成后创建或删除文件的风险。风险可能很小,但可能仍需要处理。处理这个问题的一种方法是在循环中使用 try/catch:
while (true)
{
try
{
if (!File.Exists(path))
{
File.WriteAllText(path, "0");
return "0";
}
else
{
return File.ReadAllText(path);
}
}
catch (IOException)
{
// try again
}
}
另一种方法是跳过 ReadAllText
而是打开一个文件流。如果成功,您就知道您拥有对该文件的独占访问权限,可以对其进行读取或写入:
try
{
using var fs = File.Open(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
if (fs.Length == 0)
{
using var sw = new StreamWriter(fs);
sw.Write('0');
return "0";
}
else
{
using var sr = new StreamReader(fs);
return sr.ReadToEnd();
}
}
catch (Exception)
{
// Handle the various types of exception that may occur.
}
我正在 visual studio 使用 c# 编写应用程序。我想检查 readalltext 是否正确找到文件,如果没有,则需要创建文件并在其中放入零。在伪代码中:
if(x=File.ReadAllText("file.txt")==NULL)
{
File.WriteAllText("file.txt", "0");
x=File.ReadAllText("file.txt");
}
我该怎么做?在此先感谢,我尝试了一些 google 但我可能输入了错误的关键字
您可以使用File.Exists()
方法检查文件是否存在。
string path = "file.txt";
if (!File.Exists(path))
{
File.WriteAllText(path, "0");
}
使用File.Exist()
的问题在于存在检查完成后创建或删除文件的风险。风险可能很小,但可能仍需要处理。处理这个问题的一种方法是在循环中使用 try/catch:
while (true)
{
try
{
if (!File.Exists(path))
{
File.WriteAllText(path, "0");
return "0";
}
else
{
return File.ReadAllText(path);
}
}
catch (IOException)
{
// try again
}
}
另一种方法是跳过 ReadAllText
而是打开一个文件流。如果成功,您就知道您拥有对该文件的独占访问权限,可以对其进行读取或写入:
try
{
using var fs = File.Open(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
if (fs.Length == 0)
{
using var sw = new StreamWriter(fs);
sw.Write('0');
return "0";
}
else
{
using var sr = new StreamReader(fs);
return sr.ReadToEnd();
}
}
catch (Exception)
{
// Handle the various types of exception that may occur.
}