0

私はファイルを読み込もうとしています(これは完全に機能します)。唯一の問題は、パスにスペースがあると、コードがクラッシュし、そのようなパスがないと表示されることです。誰かがこれらのスペースや別の解決策を逃れる方法を知っていますか?ありがとう!

これが私が持っているコードです:

public static string ReadValue(string value)
        {
            try
            {
                FileStream propertiesFile = new FileStream(ServerLocation + FileName, FileMode.Open);
                StreamReader sr = new StreamReader(propertiesFile);
                string Line = sr.ReadLine();
                while (Line != null)
                {
                    if (Line.Contains(value))
                    {
                        var setting = Line.Split('=')[1];
                        Console.WriteLine(setting);
                        sr.Close();
                        return setting;
                    }
                    Line = sr.ReadLine();
                }
                sr.Close();
            }
            catch (IOException e)
            {
                Console.WriteLine("Cannot find the specified file.");
                Console.WriteLine(e.ToString());
                return null;
            }
            return null;
        }
4

1 に答える 1

2

通常、空白のあるパスは問題を引き起こさないはずです...絶対に問題"C:\My Directory\Files"ないはずです...ServerLocationの先頭またはFileNameの末尾のどこかでスラッシュを忘れている可能性があります。

String path = Path.Combine(ServerLocation, FileName);

または:

FileStream propertiesFile = new FileStream(ServerLocation.Trim() + FileName.Trim(), FileMode.Open);

また、私のコメントで示唆されているように、ループを次のように変更します。

while ((Line = sr.ReadLine()) != null)
{
    if (Line.Contains(value))
    {
        var setting = Line.Split('=')[1];
        Console.WriteLine(setting);
        sr.Close();
        return setting;
    }
}
于 2013-01-16T14:04:59.693 に答える