我想在目标文件夹中创建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");
}
}
}
}
}
答案 0 :(得分:3)
我发现至少有三件事是错误的。
if (!File.Exists(path))
- path
是Directory
,而不是File
。
如果目录存在,则要进入循环,如果不存在则不进入。否则没有任何意义。
path = Filename;
- 您希望将两个字符串连接到一个新变量,而不是覆盖path
。
答案 1 :(得分:1)
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))
这样,每次循环时都不会覆盖路径值。
答案 2 :(得分:0)
您正在重新设置路径
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");
}}
}
}