创建多个文本文件并写入其中
本文关键字:文件 文本 创建 | 更新日期: 2023-09-27 18:22:29
我想创建100个文件到目标文件夹,下面是源代码,但它在目标文件夹中创建文件。感谢的任何帮助
class Program
{
static void Main(string[] args)
{
int i=1;
string path = @"E:'Project'C_Sharp'Tutorial'Console_App'FileSystem'Output'";
if (!File.Exists(path))
{
for (i = 1; i < 100; i++)
{
string FileName = "MyTest" + i + ".txt";
path = FileName;
// Create a file to write to.
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine("Hello");
sw.WriteLine("And");
sw.WriteLine("Welcome");
}
}
}
}
}
我发现至少有3处错误。
-
if (!File.Exists(path))
-path
是Directory
,而不是File
。 -
如果目录确实存在,则需要进入循环,而不是不存在。否则毫无意义。
-
path = Filename;
-您希望将两个字符串连接到一个新变量,而不是覆盖path
。
Rotem做得很好,但我想增加代码的外观。
string path = @"E:'Project'C_Sharp'Tutorial'Console_App'FileSystem'Output'";
if (!File.Exists(path))
你们都在检查一个目录,如果它确实存在,你们想这样做。你想要
if (Directory.Exists(path)
然后你将你的目录路径重新分配到你的文件名
string FileName = "MyTest" + i + ".txt";
path = FileName;
你想做的是连接(组合)两个字符串
string FilePath = path + @"MyTest" + i.ToString() + ".txt"
using (StreamWriter sw = File.CreateText(FilePath))
这样就不会在每次循环时覆盖路径值。
您正在重新设置路径
path = FileName;
您应该将FileName连接到Path并使用File.Exists
int i=1;
string path = @"E:'Project'C_Sharp'Tutorial'Console_App'FileSystem'Output'";
if (Directory.Exists(path))
{
for (i = 1; i < 100; i++)
{
string FileName = "MyTest" + i + ".txt";
var newpath= path + FileName;
// Create a file to write to.
if(!File.Exists(newpath)){
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine("Hello");
sw.WriteLine("And");
sw.WriteLine("Welcome");
}}
}
}