【问题标题】:How to make a multiple files with 1 path?如何制作具有 1 个路径的多个文件?
【发布时间】:2013-05-10 23:39:44
【问题描述】:

如何在c#的路径中创建变量?比如创建一个用户注册/登录/统计。

string UserName = "";

string path = @"c:\File\File\" + UserName + ".text";

我知道这行不通,也许有人知道该怎么做,我四处寻找,从未找到解决方案来获得这样的路径。

希望有人能解决!

【问题讨论】:

  • 你到底想做什么?您完全可以通过这种方式创建文件名。
  • 你的意思是它不起作用?完全不清楚您要做什么。
  • 如何从用户名中删除无效字符???
  • 请不要多次询问您的问题!这是您首先要问的另一个问题。请关闭此问题并打开一个新问题FAQ。顺便说一句:How to clean a FileName
  • np 反正我是自己发现的。

标签: c# string path


【解决方案1】:

您可以使用 /(斜杠)代替 \(反斜杠),或者您可以转义反斜杠,在其后面添加另一个反斜杠:

string path = "c:\\File\\File\\"+ Username + ".text";

【讨论】:

  • 所以你是说在每个 \ 中添加 \ 并删除 @ 将解决其中包含变量的问题?
  • 我测试了它,它说 A field initializer cannot reference the nonstatic field, method, or property `Login.PlayerName'
  • 如果UserName 包含invalid path characters 没有用于创建或使用文件的函数将接受此字符串,并且"\\"@"\" 这两者都可以,这意味着相同的另一种方式写吧
  • 你能举个例子吗,我真的不明白我该怎么说。
【解决方案2】:

这种方式对于简单的连接字符串是绝对可以的。还有其他方法,比如

string.Format函数

StringBuilder

这一切都很好,但如果你绝对确定你创建了一个有效的路径使用

Path.Combine

【讨论】:

    【解决方案3】:

    不起作用的唯一原因是转义字符。以下任何一项都可以;

    string path = "c:\\File\\File\\"+ Username + ".txt"; // escape first slash, second appears in string
    string path = @"c:\File\File\"+ Username + ".text"; // take literal string, escape sequences included
    string path = "c:/File/File/"+ Username + ".text"; //forward slash is not an escape
    

    【讨论】:

      【解决方案4】:

      您可以轻松get an array of invalid file name characters

      char[] invalidPathChars = Path.GetInvalidPathChars();
      
      foreach (char ch in invalidPathChars)
      {
         Username = Username.Replace(ch.ToString(), "");
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-05
        • 1970-01-01
        • 1970-01-01
        • 2022-01-09
        • 1970-01-01
        • 1970-01-01
        • 2023-02-12
        • 1970-01-01
        相关资源
        最近更新 更多