c#读取不同计算机操作系统和语言上的文本文件目录

c#读取不同计算机操作系统和语言上的文本文件目录,c#,directory,filepath,C#,Directory,Filepath,我有一个问题,在我的电脑上这行代码的工作。 但在Mac和法语、日语Windows上,它会给出错误: The path is not of a legal form. ArgumentException 我只是在搜索一个.dll目录,并试图找到文件Tools.txt 在不同的文化和操作系统上找到tools.txt有什么原因吗 string assemblyLocation = System.Reflection.Assembly.GetExecutingAssembly().Lo

我有一个问题,在我的电脑上这行代码的工作。 但在Mac和法语、日语Windows上,它会给出错误:

  The path is not of a legal form.
  ArgumentException
我只是在搜索一个.dll目录,并试图找到文件Tools.txt 在不同的文化和操作系统上找到tools.txt有什么原因吗

    string assemblyLocation = System.Reflection.Assembly.GetExecutingAssembly().Location;
    string assemblyPath = System.IO.Path.GetDirectoryName(assemblyLocation);
    assemblyPath += @"\Tools.txt";

    string[] lines = System.IO.File.ReadAllLines(assemblyPath);

不要连接字符串来构建路径-使用
path.Combine
instead根据您的建议添加了这一行,但是mac是否有符号“\”?assemblyPath=System.IO.Path.Combine(assemblyPath,@“\Tools.txt”);我不知道Mac使用什么作为路径分隔符,但据我所知,反斜杠仅适用于Windows。只需将其保留为
路径即可。合并
无论如何都应添加正确的分隔符。旁注:将文件作为资源嵌入通常更容易跨平台获得(显然,用户将无法修改此类文件,但这应该是作为应用程序一部分的文件所需要的行为,而不是某些配置)在这种情况下,它是一份CNC刀具的文件,每周使用CNC更换刀具。因此,手动将刀具写入txt文件,以更新程序刀具路径,避免制造过程中出现错误。这就是我必须不断阅读刀具轨迹的原因。