Как получить имена файлов папки в c # - PullRequest
0 голосов
/ 29 ноября 2011

Мне нужны имена файлов определенной папки в c #.

Я использую следующий код

string[] filePaths = Directory.GetFiles(@"c:\MyDir\");

Я не хочу использовать функцию getfiles, потому что она заблокирована процессом. Я хочу только имена файлов, а не весь путь.

Как я могу это сделать?

Вот мой полный код.

protected void Button1_Click(object sender, EventArgs e)
{
    if (Directory.Exists(Server.MapPath("Import\\")))
    {
        if (FileUpLoad1.HasFile)
            try
            {
                FileUpLoad1.SaveAs(Server.MapPath("Import\\" + FileUpLoad1.FileName));
                Label1.Text = FileUpLoad1.FileName;
            }
            catch (Exception ex)
            {
                Label1.Text = "ERROR: " + ex.Message.ToString();
            }
        else
        {
            Label1.ForeColor = System.Drawing.Color.Red;
            Label1.Text = "No File Uploaded.";
        }
    }
    else
    {
        DirectoryInfo di = Directory.CreateDirectory(Server.MapPath("Import\\"));
        if (FileUpLoad1.HasFile)
            try
            {
                FileUpLoad1.SaveAs(Server.MapPath("Import\\" + FileUpLoad1.FileName));
                Label1.Text = FileUpLoad1.FileName;
            }
            catch (Exception ex)
            {
                Label1.Text = "ERROR: " + ex.Message.ToString();
            }
        else
        {
            Label1.ForeColor = System.Drawing.Color.Red;
            Label1.Text = "No File Uploaded.";
        }
    }
}

protected void Button2_Click(object sender, EventArgs e)
{
    string[] filePaths = Directory.GetFiles(Server.MapPath("Import"));
    PdfDocument pdfDoc = new PdfDocument();

        foreach (var item in filePaths)
        {
            PdfPage pdfPage = new PdfPage();
            pdfPage.Size = PageSize.Letter;
            pdfDoc.Pages.Add(pdfPage);
            using (var pdfGfx = XGraphics.FromPdfPage(pdfPage))
            {
                pdfGfx.DrawImage(XImage.FromFile(item), 0, 0);
            }
        }

        pdfDoc.Save(Server.MapPath("PDF\\")+ "vivek.pdf");
        pdfDoc.Dispose();
        pdfDoc.Close();

        Label1.Text = "pdf sucessfully created.";

}

protected void Button3_Click(object sender, EventArgs e)
{
    System.IO.Directory.Delete(Server.MapPath("Import\\"),true);
}

Кнопка 1 предназначена для импорта и Кнопка 2 для создания PDF из JPG и Кнопка 3 предназначена для удаления файлов jpg

Ответы [ 2 ]

6 голосов
/ 29 ноября 2011

Вы можете использовать приведенный ниже код, чтобы получить имена файлов без полного пути

DirectoryInfo dirInfo = new DirectoryInfo(@"c:\MyDir\");
List<string> filenames = dirInfo.GetFiles().Select(i => i.Name).ToList();
0 голосов
/ 29 ноября 2011
DirectoryInfo di = new DirectoryInfo(@"c:\MyDir\");
FileInfo [] files = di.GetFiles();

files[0].Name ... // this is just name of the file
files[0].FullName ... // this is the full pathname of the file    
files[0].Delete(); // will delete first of the files in list - just example
...