C# 如何序列化? 使用系统; 使用System.Collections.Generic; 使用System.IO; 班级计划 { 静态void Main() { //获取文档中的所有文件 List dirs=FileHelper.GetFilesRecursive(“S:\\bob.smith\\”; foreach(dirs中的字符串p) { 控制台写入线(p); } //写入计数 WriteLine(“Count:{0}”,dirs.Count); Console.Read(); } } 静态类FileHelper { 公共静态列表GetFilesRecursive(字符串b) { // 1. //将结果存储在“文件结果”列表中。 列表结果=新列表(); // 2. //存储我们的目录堆栈。 堆栈=新堆栈(); // 3. //添加初始目录。 堆栈推送(b); // 4. //在有目录要处理时继续 而(stack.Count>0) { //A。 //获取顶级目录 string dir=stack.Pop(); 尝试 { //B //将此目录中的所有文件添加到结果列表中。 result.AddRange(Directory.GetFiles(dir,“*”); //C //在此目录中添加所有目录。 foreach(Directory.GetDirectories(dir)中的字符串dn) { 堆栈推送(dn); } } 抓住 { //D //无法打开目录 } } 返回结果; var k=“”; 结果=k; } }

C# 如何序列化? 使用系统; 使用System.Collections.Generic; 使用System.IO; 班级计划 { 静态void Main() { //获取文档中的所有文件 List dirs=FileHelper.GetFilesRecursive(“S:\\bob.smith\\”; foreach(dirs中的字符串p) { 控制台写入线(p); } //写入计数 WriteLine(“Count:{0}”,dirs.Count); Console.Read(); } } 静态类FileHelper { 公共静态列表GetFilesRecursive(字符串b) { // 1. //将结果存储在“文件结果”列表中。 列表结果=新列表(); // 2. //存储我们的目录堆栈。 堆栈=新堆栈(); // 3. //添加初始目录。 堆栈推送(b); // 4. //在有目录要处理时继续 而(stack.Count>0) { //A。 //获取顶级目录 string dir=stack.Pop(); 尝试 { //B //将此目录中的所有文件添加到结果列表中。 result.AddRange(Directory.GetFiles(dir,“*”); //C //在此目录中添加所有目录。 foreach(Directory.GetDirectories(dir)中的字符串dn) { 堆栈推送(dn); } } 抓住 { //D //无法打开目录 } } 返回结果; var k=“”; 结果=k; } },c#,serialization,C#,Serialization,这是我的密码。我试图将结果序列化为XML文件(我认为通过将其传递给var,我可以使用该变量进行序列化)。我束手无策。请找个人帮忙 奇怪的是,出于某种原因,我不能添加注释——作为回应,是的,我已经阅读了无数关于序列化的教程。我是这方面的新手,坦率地说,这些教程在很大程度上对b/c没有帮助,我无法将这个函数和序列化放在一起。在这一点上,我正在寻找解决方案,因为我即将从挫折中认真地解决一些问题。如果您只是想输出目录列表的内容,使用XmlWriter可能是最简单的: using System; usin

这是我的密码。我试图将结果序列化为XML文件(我认为通过将其传递给
var
,我可以使用该变量进行序列化)。我束手无策。请找个人帮忙


奇怪的是,出于某种原因,我不能添加注释——作为回应,是的,我已经阅读了无数关于序列化的教程。我是这方面的新手,坦率地说,这些教程在很大程度上对b/c没有帮助,我无法将这个函数和序列化放在一起。在这一点上,我正在寻找解决方案,因为我即将从挫折中认真地解决一些问题。

如果您只是想输出目录列表的内容,使用XmlWriter可能是最简单的:

using System;
using System.Collections.Generic;
using System.IO;

class Program
{
    static void Main()
    {
        // Get all files in Documents
        List<string> dirs = FileHelper.GetFilesRecursive("S:\\bob.smith\\");
        foreach (string p in dirs)
        {
            Console.WriteLine(p);
        }
        // Write count
        Console.WriteLine("Count: {0}", dirs.Count);
        Console.Read();
    }
}

static class FileHelper
{
    public static List<string> GetFilesRecursive(string b)
    {
        // 1.
        // Store results in the file results list.
        List<string> result = new List<string>();

        // 2.
        // Store a stack of our directories.
        Stack<string> stack = new Stack<string>();

        // 3.
        // Add initial directory.
        stack.Push(b);

        // 4.
        // Continue while there are directories to process
        while (stack.Count > 0)
        {
            // A.
            // Get top directory
            string dir = stack.Pop();

            try
            {
                // B
                // Add all files at this directory to the result List.
                result.AddRange(Directory.GetFiles(dir, "*.*"));

                // C
                // Add all directories at this directory.
                foreach (string dn in Directory.GetDirectories(dir))
                {
                    stack.Push(dn);
                }
            }
            catch
            {
                // D
                // Could not open the directory
            }
        }
        return result;
        var k = "";
        result = k;
    }
}
结果如下所示:

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
using (XmlWriter writer = XmlWriter.Create(@"c:\path\filename.xml", settings))
{
    writer.WriteStartElement("dirs");
    dirs.ForEach(d => writer.WriteElementString("dir", d));
    writer.WriteEndElement(); // dirs
}

我不想听起来很刻薄,但从你的问题来看,你似乎遗漏了一些与序列化相关的非常重要和基本的概念

可能是开始序列化的好地方。试一试,如果你有问题,请随意在这里发布


希望这能有所帮助,

另一方面,您可以使用

ÿÿÿÿ          System.Collections.Generic.List`1[[System.String, mscorlib,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]   
_items_size_version                       c:\   c:\Program Files

您可以使用XmlSerializer:

Directory.GetFiles(@"S:\\bob.smith\\", "*.*", SearchOption.AllDirectories)
使用System.Xml.Serialization;
静态void Main()
{
//获取文档中的所有文件
List dirs=FileHelper.GetFilesRecursive(@“S:\\bob.smith\\”);
XmlSerializer x=新的XmlSerializer(dirs.GetType());
x、 序列化(Console.Out,dirs);
Console.Read();
}

出了什么问题?@Stormenet他在这里问了一个关于SO的问题有什么问题,这是SO的主要目的之一。“我想通过将其传递给var,我可以使用该变量序列化”-哇,我想你对var关键字的作用有严重的误解。var不是类型David,你认为教程没有帮助,或者询问者没有遗漏与序列化相关的基本概念?在提供答案时,我从来都不想吝啬,老实说,我认为这里的情况并非如此。然而,根据你的评论,我已经改变了这个答案的措辞。如果你仍然认为这很卑鄙,你能告诉我吗?如果是这样,我将删除答案。谢谢:)根据您的编辑,现在我可以看到您的意图。我已经取消了我的反对票。谢谢你的更新。
ÿÿÿÿ          System.Collections.Generic.List`1[[System.String, mscorlib,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]   
_items_size_version                       c:\   c:\Program Files
Directory.GetFiles(@"S:\\bob.smith\\", "*.*", SearchOption.AllDirectories)
using System.Xml.Serialization;

static void Main()
    {
        // Get all files in Documents
        List<string> dirs = FileHelper.GetFilesRecursive(@"S:\\bob.smith\\");

        XmlSerializer x = new XmlSerializer(dirs.GetType());
        x.Serialize(Console.Out, dirs);



        Console.Read();
    }