创建多个文本文件并写入它

时间:2013-07-16 15:22:11

标签: c#

我想在目标文件夹中创建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 个答案:

答案 0 :(得分:3)

我发现至少有三件事是错误的。

  1. if (!File.Exists(path)) - pathDirectory,而不是File

  2. 如果目录存在,则要进入循环,如果不存在则不进入。否则没有任何意义。

  3. 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");
                }}

            }
        }