首页 \ 问答 \ 如何在WPF中使用C#将List >存储到文本文件中?(How can i store my List> to a text file using C# in WPF?)

如何在WPF中使用C#将List >存储到文本文件中?(How can i store my List> to a text file using C# in WPF?)

我正在尝试使用C#将List<List<Class>>到文本文件中,我的类就像

public class cEspecie
{
    private string nombre;
    private BitmapImage imagen;
    private int tiempodevida;
    private int movilidad;
    private int decaimiento;
    private int tipo;
    private string colordelagrafica;
    private bool seleccion;


    public int Tipo
    {
        get
        {
            return tipo;
        }
        set
        {
            tipo = value;
        }
    }

    public string Nombre
    {
        get
        {
            return nombre;
        }
        set
        {
            nombre = value;
        }
    }

    public BitmapImage Imagen
    {
        get
        {
            return imagen;

        }
        set
        {
            imagen = value;
        }
    }

    public int TiempoDeVida
    {
        get
        {
            return tiempodevida;
        }
        set
        {
            tiempodevida = value;
        }
    }

    public int Movilidad
    {
        get
        {
            return movilidad;
        }
        set
        {
            movilidad = value;
        }
    }

    public int Decaimiento
    {
        get
        {
            return decaimiento;
        }
        set
        {
            decaimiento = value;
        }
    }

    public string ColorDeLaGrafica
    {
        get
        {
            return colordelagrafica;
        }
        set
        {
            colordelagrafica = value;
        }
    }

    public bool Seleccion
    {
        get
        {
            return seleccion;
        }
        set
        {
            seleccion = value;
        }
    }
}

 List<List<cEspecie>> items1 = new List<List<cEspecie>>();

如何从“items1”中获取所有数据,以便使用C#将其存储在文本文件中? 以及如何将其存回以便将其存储在另一个列表中?


i'm trying to store a List<List<Class>> to a text file using C#, my class is like

public class cEspecie
{
    private string nombre;
    private BitmapImage imagen;
    private int tiempodevida;
    private int movilidad;
    private int decaimiento;
    private int tipo;
    private string colordelagrafica;
    private bool seleccion;


    public int Tipo
    {
        get
        {
            return tipo;
        }
        set
        {
            tipo = value;
        }
    }

    public string Nombre
    {
        get
        {
            return nombre;
        }
        set
        {
            nombre = value;
        }
    }

    public BitmapImage Imagen
    {
        get
        {
            return imagen;

        }
        set
        {
            imagen = value;
        }
    }

    public int TiempoDeVida
    {
        get
        {
            return tiempodevida;
        }
        set
        {
            tiempodevida = value;
        }
    }

    public int Movilidad
    {
        get
        {
            return movilidad;
        }
        set
        {
            movilidad = value;
        }
    }

    public int Decaimiento
    {
        get
        {
            return decaimiento;
        }
        set
        {
            decaimiento = value;
        }
    }

    public string ColorDeLaGrafica
    {
        get
        {
            return colordelagrafica;
        }
        set
        {
            colordelagrafica = value;
        }
    }

    public bool Seleccion
    {
        get
        {
            return seleccion;
        }
        set
        {
            seleccion = value;
        }
    }
}

 List<List<cEspecie>> items1 = new List<List<cEspecie>>();

How can I take all my data from "items1" in order to store it inside a Text file using C#? and also how can I make it back in order to store it in another list?


原文:https://stackoverflow.com/questions/19918025
更新时间:2022-03-03 17:03

最满意答案

您可以使用Directory.GetFiles重载和SearchOption.AllDirectories选项枚举目录include子目录中的所有文件,然后使用它

String[] allfiles = System.IO.Directory.GetFiles("myPath", "*.*", System.IO.SearchOption.AllDirectories);
foreach (string file in allfiles)
{
    newFile.CreateEntryFromFile(file);
}

您可以使用ZipFile.CreateFromDirectory(string sourceDirectoryName, string destinationArchiveFileName)或其重载来一步创建存档。

还有一种方法可以通过Path.GetDirectoryName()方法更灵活地操作zip归档结构。 这是一个例子:

foreach(var filePath in files)
{
    var directory = Path.GetDirectoryName(filePath);
    var fileName = Path.GetFileName(filePath);
    var entry = archive.GetEntryFromFile(filePath, $"{directory}/{fileName}");
}

最后,您可以使用第三方库DotNetZip并在3行代码中解决您的场景:

using (ZipFile zip = new ZipFile())
{
    zip.AddFiles(files);
    zip.Save("Archive.zip");
}

You can enumerate all files in the directory include subdirectories with Directory.GetFiles overloading and SearchOption.AllDirectories option and then use it

String[] allfiles = System.IO.Directory.GetFiles("myPath", "*.*", System.IO.SearchOption.AllDirectories);
foreach (string file in allfiles)
{
    newFile.CreateEntryFromFile(file);
}

You can use ZipFile.CreateFromDirectory(string sourceDirectoryName, string destinationArchiveFileName) or its overload to create an archive in one step too.

Also there is a way to manipulate zip archive structure more flexibly via Path.GetDirectoryName() method. Here is the example:

foreach(var filePath in files)
{
    var directory = Path.GetDirectoryName(filePath);
    var fileName = Path.GetFileName(filePath);
    var entry = archive.GetEntryFromFile(filePath, $"{directory}/{fileName}");
}

Finally, you can use 3rd party library DotNetZip and solve yor scenario in just 3 lines of code:

using (ZipFile zip = new ZipFile())
{
    zip.AddFiles(files);
    zip.Save("Archive.zip");
}

相关问答

更多

相关文章

更多

最新问答

更多
  • 如何使用自由职业者帐户登录我的php网站?(How can I login into my php website using freelancer account? [closed])
  • 如何打破按钮上的生命周期循环(How to break do-while loop on button)
  • C#使用EF访问MVC上的部分类的自定义属性(C# access custom attributes of a partial class on MVC with EF)
  • 如何获得facebook app的publish_stream权限?(How to get publish_stream permissions for facebook app?)
  • 如何并排放置两个元件?(How to position two elements side by side?)
  • 在MySQL和/或多列中使用多个表用于Rails应用程序(Using multiple tables in MySQL and/or multiple columns for a Rails application)
  • 如何隐藏谷歌地图上的登录按钮?(How to hide the Sign in button from Google maps?)
  • Mysql左连接旋转90°表(Mysql Left join rotate 90° table)
  • 带有ImageMagick和许多图像的GIF动画(GIF animation with ImageMagick and many images)
  • 电脑高中毕业学习去哪里培训
  • 电脑系统专业就业状况如何啊?
  • IEnumerable linq表达式(IEnumerable linq expressions)
  • 如何在Spring测试中连接依赖关系(How to wire dependencies in Spring tests)
  • Solr可以在没有Lucene的情况下运行吗?(Can Solr run without Lucene?)
  • 如何保证Task在当前线程上同步运行?(How to guarantee that a Task runs synchronously on the current thread?)
  • 在保持每列的类的同时向数据框添加行(Adding row to data frame while maintaining the class of each column)
  • 的?(The ? marks in emacs/haskell and ghc mode)
  • 一个线程可以调用SuspendThread传递自己的线程ID吗?(Can a thread call SuspendThread passing its own thread ID?)
  • 延迟socket.io响应,并“警告 - websocket连接无效”(Delayed socket.io response, and “warn - websocket connection invalid”)
  • 悬停时的图像转换(Image transition on hover)
  • IIS 7.5仅显示homecontroller(IIS 7.5 only shows homecontroller)
  • 没有JavaScript的复选框“关闭”值(Checkbox 'off' value without JavaScript)
  • java分布式框架有哪些
  • Python:填写表单并点击按钮确认[关闭](Python: fill out a form and confirm with a button click [closed])
  • PHP将文件链接到根文件目录(PHP Linking Files to Root File Directory)
  • 我如何删除ListView中的项目?(How I can remove a item in my ListView?)
  • 您是否必须为TFS(云)中的每个BUG创建一个TASK以跟踪时间?(Do you have to create a TASK for every BUG in TFS (Cloud) to track time?)
  • typoscript TMENU ATagParams小写(typoscript TMENU ATagParams lowercase)
  • 武陟会计培训类的学校哪个好点?
  • 从链接中删除文本修饰(Remove text decoration from links)