首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FileStreams的奇怪行为

FileStreams的奇怪行为
EN

Stack Overflow用户
提问于 2012-04-17 08:32:18
回答 3查看 172关注 0票数 1

我有一个要创建和写入的文件名列表。我有一个foreach循环遍历它们,就像这样

代码语言:javascript
复制
void WriteFiles(byte[] data)
{
    foreach (string fileName in fileNames)//fileNames is my List<string>
    {
        FileStream fs = File.Create(fileName)

        fs.Write(data, 0, data.Length);

        fs.Close();
    }
}

假设我的文件列表是1.txt、2.txt和3.txt。奇怪的是,1.txt、2.txt和3.txt都是创建的。但是数据只写了3次到1.txt,2.txt和3.txt是空的。我在调试器中进行了两次检查,每次循环时fileName都不同。我写过很多读写文件的程序,但我从来没有遇到过这样的行为。我很困惑。

编辑

也许这会更有意义。这是我运行并产生问题的实际代码,直接从Visual Studio复制并粘贴。

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.IO;

namespace ConsoleApplication1
{
   class Program
    {
        static List<string> fileNames = new List<string>();

        static void Main()
        {
            Directory.CreateDirectory("C:\\textfiles");
            fileNames.AddRange(new string[] { "1.txt", "2.txt", "3.txt" });
            WriteFiles();
        }

        static void WriteFiles()
        {
            foreach (string fileName in fileNames)
            {
                using (StreamWriter sw = new StreamWriter(File.Create("c:\\textfiles\\" + fileName)))
                {
                    sw.Write("This is my text");
                }
            }
        }
    }
}

执行此命令后,我现在在文件夹C:\textfiles中有3个文本文件(1.txt,2.txt,3.txt),以前都不存在。

当我在记事本中打开这些文件时,我得到的是以下内容

1.txt - "This is my textThis is my textThis is my text“

2.txt -无

3.txt -无

他妈的??这没有任何意义。

EN

回答 3

Stack Overflow用户

发布于 2012-04-17 09:21:38

尝试使用" using ":

代码语言:javascript
复制
using (FileStream fs = File.Create( filename ))
{
    fs.Write( data, 0, data.Length );
}
票数 0
EN

Stack Overflow用户

发布于 2012-04-17 09:52:37

代码看起来没问题(using.Close更好)。

最有可能是你的数据

(data.length == 0)

  • does
  • 不代表可以显示的文本(如果您将类似于0,0,0的内容写入文本文件,它将不会显示任何内容。
票数 0
EN

Stack Overflow用户

发布于 2012-04-17 10:30:47

您的代码在我的测试环境中工作得很好,所以我不知道发生了什么。您正在写入的实际文件是否在同一目录中?我想说的是,您的环境中是否存在一些安全问题,是否会干扰向文件2和文件3的写入?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10183540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档