c# - 替换文件路径中的分隔符

标签 c# visual-studio-2008 replace delimiter

我正在 VS 2008 中开发 C# Web 应用程序。我让用户选择一个输入文件,然后将文件路径存储在一个字符串变量中。但是,它将此路径存储为 "C:\\folder\\..."。所以我的问题是如何将此文件路径转换为单个“\”?

谢谢大家的帮助!请原谅我,因为我是 ASP.NET 开发的新手。这是我在上下文中的更多代码。首先我想看看目录是否存在。如果我检查文件是否存在,我想我不必检查这个。但这应该仍然有效吗?目前我的“路径”字符串变量没有按照我需要的方式显示。我不确定如何制定此声明。最终我想执行 ReadAllText 语句(见最后一行)。

protected void btnAppend_Click(object sender, EventArgs e)
{
    string fullpath = Page.Request.PhysicalPath;
    string fullPath2 = fullpath.Replace(@"\\", @"\");

    if (!Directory.Exists(fullpath2))
    {
    string msg = "<h1>The upload path doesn't exist: {0}</h1>";
    Response.Write(String.Format(msg, fullpath2));
    Response.End();
}
    string path = "@" + fullpath2 + uploadFile.PostedFile.FileName; 

    if (File.Exists(path))
    {
        // Create a file to write to.
        try
        {
            StreamReader sr = new StreamReader(path);
            string s = "";
            while(sr.Peek() > 0)
                s = sr.ReadLine();
            sr.Close();
        }
        catch (IOException exc)
        {
            Console.WriteLine(exc.Message + "Cannot open file.");
            return; 
        }
    }

    if (uploadFile.PostedFile.ContentLength > 0)
    {

        inputfile = System.IO.File.ReadAllText(path);

最佳答案

您确定问题出在反斜杠上吗?反斜杠是字符串中的转义字符,因此如果您将其添加到字符串中,则必须将其键入“\\”而不是“\”。 (如果您不使用 @)请注意,调试器经常按照您将其放入代码的方式显示字符串,带有转义字符,而不是直接显示。

根据documentation , Page.Request.PhysicalPath 返回你所在的特定文件的路径,而不是目录。 Directory.Exists 仅当您给它一个目录而不是一个文件时才为真。 File.Exists() 是否返回 true?

关于c# - 替换文件路径中的分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2641324/

相关文章:

javascript - 替换编码的 £ 符号

c++ - BOOST_STATIC_ASSERT 没有 boost

c# - 如何在C#中获取连续字符?

c# - 如何通过最高 ID 获取 List<object> 中的值?

c++ - 打印 Visual Studio 用于编译文件的整个命令

xpath - 如何在 odoo 8 中替换为 xpath 而不是放在后面?

c# - 32 位隐式转换无法通过通用重载解析

c# - 如何从 Umbraco 的特定文化中获取内容

c++ - 调试会改变多线程 C++ 程序的行为吗?

visual-studio-2008 - Visual Studio设计器错误