1

我想在目标文件夹中创建 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");
                }

            }
        }



    }
}
4

3 回答 3

3

我看到至少有 3 件事是错误的。

  1. if (!File.Exists(path))-path是一个Directory,不是一个File

  2. 如果目录确实存在,您想进入循环,而不是如果它不存在。否则没有任何意义。

  3. path = Filename;- 您想将两个字符串连接到一个新变量,而不是覆盖path

于 2013-07-16T15:25:38.007 回答
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))

这样你就不会在每次循环时都覆盖你的路径值。

于 2013-07-16T15:31:57.323 回答
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");
                }}

            }
        }
于 2013-07-16T15:26:42.647 回答