как сделать так, чтобы путь был "/" - PullRequest
1 голос
/ 28 марта 2012

У меня есть проблема с моим открытым всплывающим окном, которое может прочитать мой путь, и это как выбросить мой знак "/" в нем. Таким образом, это будет выглядеть так: «C: UsersKHAIRADesktopheitechHibah Total v1.2 / Secure / PDF Folder»

Может ли кто-нибудь помочь мне сделать так, чтобы он выглядел / читался так: «C: Users / KHAIRA / Desktop / heitech / Hibah Total v1.2 / Secure / PDF Folder».

У меня есть кнопка открытия в gridview, которая откроет новое окно и просмотрит PDF-файл здесь, кодировка из ViewDocument.aspx

string commandName = e.CommandName.ToString().Trim();
GridViewRow row = GridView1.Rows[Convert.ToInt32(e.CommandArgument)];
string folderName = ConfigurationManager.AppSettings["folderPDF"].ToString();
string path = Server.MapPath("~") + "/Secure/";
string fullPath = path + folderName;
string[] filePaths = Directory.GetFiles(fullPath, "*.pdf"); 
switch (commandName)
{
    case "Open":                       
        string script = "<script language=\"JavaScript\">\n";
        script += "window.open ('OpenForm.aspx?path=" + row.Cells[0].Text;
        script += "','CustomPopUp', config='height=500,width=1024, toolbar=no, menubar=no, scrollbars=yes, resizable=yes,location=no, directories=no, status=no')\n";
        script += "</script>";

        this.ClientScript.RegisterStartupScript(this.GetType(), "onload", script);
        break;

для кодировки OpenForm.aspx.cs:

catch(Exception ex)
{
    try
    {
        string paths = Request.QueryString["path"].ToString();
        bool fileExist = File.Exists(paths);
        if (fileExist)
        {
            Response.ContentType = "Application/pdf";
            Response.TransmitFile(paths);
        }
        else
        {
            Label1.Text = "File Not Exist";
        }
    }

Тем не менее, я понимаю, что проблема здесь

string paths = Request.QueryString["path"].ToString();

Ответы [ 3 ]

2 голосов
/ 28 марта 2012

обо всем по порядку.

Разделитель пути локальной системы: \, например, C:\Windows.

/ предназначен для веб, например /4177477/kak-sdelat-tak-chtoby-put-byl

Для одного \ у вас естьпоставить \\ (запомните escape-последовательность)

Или

Использовать строку Verbatim

string path = @"C:\Users\KHAIRA\Desktop\heitech\Hibah Total v1.2\Secure\PDF Folder"

Или

Используйте метод Path.Combine пространства имен System.IO, например

Path.Combine("C:", "Users");

. Он вернет строку

C:\Users
.
0 голосов
/ 28 марта 2012

Попробуйте это

String path=@"C:Users/KHAIRA/Desktop/heitech/Hibah Total v1.2/Secure"

String fullpath=path + "\\\" + "PDF Folder"

Fullpath будет содержать путь, который вы хотите

0 голосов
/ 28 марта 2012

Попробуйте использовать что-то вроде этого:

string path = "C:Users\\KHAIRA\\Desktop\\heitech\\Hibah Total v1.2\\Secure\\PDF Folder";
...