登录时搜索配置文件

时间:2016-04-14 23:30:05

标签: c#

我有一个具有登录功能的测验但是,当您更换电脑时,您还必须更改文件所在的驱动器,例如D驱动器,E驱动器等......

目前设置为F.是否有我可以添加的内容,它会自动搜索每个驱动器的文件?

这是我的代码

if (File.Exists(@"F:\C# Completed quiz\adam new\Mario quiz\bin/PlayerDetails.txt"))
{

    string[] lines = File.ReadAllLines(@"F:\C# Completed quiz\adam new\Mario quiz\bin/PlayerDetails.txt");

3 个答案:

答案 0 :(得分:1)

我建议你把它放在AppData或MyDocuments文件夹中:

string filename = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "C# Completed quiz","adam new","Mario quiz","bin","PlayerDetails.txt");
//or Environment.SpecialFolder.MyDocuments

if (File.Exists(filename))
{
    string[] lines = File.ReadAllLines(filename);
}

答案 1 :(得分:0)

使用Resource file txt 存储在应用程序中,或者只使用您的可执行文件进行分发。要添加资源文件:

  1. 右键单击您的项目,然后选择属性
  2. 转到资源标签并创建新文件
  3. 点击添加资源 - > 添加现有文件...
  4. 选择文字文件,然后点击打开
  5. 现在可以像字符串一样访问该文件:

    var lines = Properties.Resources.PlayerDetails;
    

    如果文件与 exe 位于同一文件夹中,则可以通过以下方式访问该文件:

    var lines = File.ReadAllLines("PlayerDetails.txt");
    

    编辑:如果您更喜欢使用此方法,请注意以下注释。

答案 2 :(得分:0)

您需要枚举系统上的硬盘驱动器并一次检查一次

https://msdn.microsoft.com/en-us/library/system.io.directory.getlogicaldrives(v=vs.110).aspx

显示了如何枚举系统上的硬盘驱动器

这个答案使用了看起来更好的方法

How can I determine if a given drive letter is a local/mapped/usb drive?

一旦您知道某个驱动器是已安装的驱动器,您应该查看<drive>:/<your path>