C#在应用程序中保存文件位置(C# Saving file location within application)

编程入门 行业动态 更新时间:2024-10-22 04:55:02
C#在应用程序中保存文件位置(C# Saving file location within application)

我希望用户能够选择程序文件在其PC中的位置,并在每次启动应用程序时保存该位置,直到他们更改它为止。 我从来没有用C#做过这样的事情,我仍然认为自己是C#的新手。 我已经考虑过创建一个Settings.txt文件或XML文件并读取用户保存的行,但我仍然不确定如何存储它。 任何帮助或建议将不胜感激。

I'm wanting the user to be able to choose the location of where a program file is located within their PC and save that location for every time my application is launched until they change it. I have never done anything like this with C#, I still consider myself a novice with C#. I've considered making a Settings.txt file or XML file and reading the lines as saved by the user, yet I still am unsure as how to store this. Any help or suggestions would be greatly appreciated.

最满意答案

void Main() { // Settings in a Text File string path1 = @"C:\\Dev\\settings.txt"; string setting1; string setting2; setting1 = "foo"; setting2 = "bar"; SaveSettingsToTextFile(path1, setting1, setting2); setting1 = ""; setting2 = ""; LoadSettingsFromTextFile(path1, out setting1, out setting2); Console.WriteLine(setting1); Console.WriteLine(setting2); // Settings in an Xml File string path2 = @"C:\\Dev\\settings.xml"; MySettings mySettings = MySettings.Create(path2); mySettings.setting1 = "bat"; mySettings.setting2 = "baz"; mySettings.Save(); mySettings = null; mySettings = MySettings.Create(path2); Console.WriteLine(mySettings.setting1); Console.WriteLine(mySettings.setting2); } void SaveSettingsToTextFile(string path, string setting1, string setting2) { var sb = new StringBuilder(); sb.AppendLine(setting1); sb.AppendLine(setting2); File.WriteAllText(path, sb.ToString()); } void LoadSettingsFromTextFile(string path, out string setting1, out string setting2) { var lines = File.ReadLines(path).ToArray(); setting1 = lines[0]; setting2 = lines[1]; } public class MySettings { public string setting1 { get; set; } public string setting2 { get; set; } static XmlSerializer serializer = new XmlSerializer(typeof(MySettings)); public static MySettings Create(string savePath) { MySettings instance; if(File.Exists(savePath)) { var xDoc = XDocument.Load(savePath); var reader = xDoc.CreateReader(); instance = (MySettings)serializer.Deserialize(reader); reader.Close(); } else { instance = new MySettings(); } instance.SavePath = savePath; return instance; } public void Save() { var xDoc = new XDocument(); var writer = xDoc.CreateWriter(); serializer.Serialize(writer, this); writer.Close(); File.WriteAllText(this.SavePath, xDoc.ToString()); } [XmlIgnore] public string SavePath { get; private set; } }

输出:

foo bar bat baz void Main() { // Settings in a Text File string path1 = @"C:\\Dev\\settings.txt"; string setting1; string setting2; setting1 = "foo"; setting2 = "bar"; SaveSettingsToTextFile(path1, setting1, setting2); setting1 = ""; setting2 = ""; LoadSettingsFromTextFile(path1, out setting1, out setting2); Console.WriteLine(setting1); Console.WriteLine(setting2); // Settings in an Xml File string path2 = @"C:\\Dev\\settings.xml"; MySettings mySettings = MySettings.Create(path2); mySettings.setting1 = "bat"; mySettings.setting2 = "baz"; mySettings.Save(); mySettings = null; mySettings = MySettings.Create(path2); Console.WriteLine(mySettings.setting1); Console.WriteLine(mySettings.setting2); } void SaveSettingsToTextFile(string path, string setting1, string setting2) { var sb = new StringBuilder(); sb.AppendLine(setting1); sb.AppendLine(setting2); File.WriteAllText(path, sb.ToString()); } void LoadSettingsFromTextFile(string path, out string setting1, out string setting2) { var lines = File.ReadLines(path).ToArray(); setting1 = lines[0]; setting2 = lines[1]; } public class MySettings { public string setting1 { get; set; } public string setting2 { get; set; } static XmlSerializer serializer = new XmlSerializer(typeof(MySettings)); public static MySettings Create(string savePath) { MySettings instance; if(File.Exists(savePath)) { var xDoc = XDocument.Load(savePath); var reader = xDoc.CreateReader(); instance = (MySettings)serializer.Deserialize(reader); reader.Close(); } else { instance = new MySettings(); } instance.SavePath = savePath; return instance; } public void Save() { var xDoc = new XDocument(); var writer = xDoc.CreateWriter(); serializer.Serialize(writer, this); writer.Close(); File.WriteAllText(this.SavePath, xDoc.ToString()); } [XmlIgnore] public string SavePath { get; private set; } }

Output:

foo bar bat baz

更多推荐

本文发布于:2023-08-05 18:45:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1437441.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:应用程序   保存文件   位置   Saving   location

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!