[Last Call] Learn about multicloud storage options and how to improve your company's cloud strategy. Register Now

x
?
Solved

Exclude Extensions from file array

Posted on 2009-04-02
12
Medium Priority
?
333 Views
Last Modified: 2013-11-07
I have an .aspx page that links to all the .pdf files in a directory and does not display the extension.
Now they would like to have all the files linked and still not display the file extension.
I'm thinking there would be an easier way to do this using "GetFileNameWithoutExtension" but I'm not exactly sure how to do it.
Thanks for any help
Dim dirInfo as New DirectoryInfo(Server.MapPath("/p1/q/csr rpt"))		
Dim arrFileInfo  As Array
Dim filesInfo   As FileInfo
Dim filesTable   As New DataTable
Dim drFiles    As DataRow
Dim dvFiles   As DataView
Dim ofn,ext As String
Dim charCt as Integer
filesTable.Columns.Add("Name", Type.GetType("System.String"))
filesTable.Columns.Add("LastWriteTime", Type.GetType("System.DateTime"))
' Get File Info
arrFileInfo = dirInfo.GetFiles("*.pdf")
For Each filesInfo In arrFileInfo
  drFiles = filesTable.NewRow()					
  ofn = filesInfo.Name
  ext = Right(ofn, 4)
  charCt = Instr(ofn, ".") -1
  ofn = Mid(ofn, 1, charCt)
  drFiles("Name") = ofn
  drFiles("LastWriteTime") = filesInfo.LastWriteTime					
  filesTable.Rows.Add(drFiles)
Next filesInfo
				
dvFiles = filesTable.DefaultView
dvFiles.Sort = "LastWriteTime DESC"
 
dg1.DataSource = dvFiles
dg1.DataBind()

Open in new window

0
Comment
Question by:lakhi
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 7
  • 5
12 Comments
 
LVL 86

Accepted Solution

by:
Mike Tomlinson earned 1600 total points
ID: 24052133
Change:

    drFiles("Name") = ofn

To:

    drFiles("Name") = System.IO.Path.GetFileNameWithoutExtension(filesInfo.Name)

The whole loop would become:

    For Each filesInfo In arrFileInfo
        drFiles = filesTable.NewRow()                                
        drFiles("Name") = System.IO.Path.GetFileNameWithoutExtension(filesInfo.Name)
        drFiles("LastWriteTime") = filesInfo.LastWriteTime                                    
        filesTable.Rows.Add(drFiles)
    Next filesInfo
0
 

Author Comment

by:lakhi
ID: 24052527
I tried that and when I preview the page, I get this error:
BC30456: 'GetFileNameWithoutExtension' is not a member of 'System.IO.FileInfo'
0
 

Author Comment

by:lakhi
ID: 24052555
Wait a sec - that might have been something I did. BRB
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
LVL 86

Expert Comment

by:Mike Tomlinson
ID: 24052564
Look closely at the line..  =)

    drFiles("Name") = System.IO.Path.GetFileNameWithoutExtension(filesInfo.Name)
0
 

Author Comment

by:lakhi
ID: 24052733
I did get it to work.
Now, the issue is to add the extension back in when I set up the "DataNavigateUrlFormatString" in the datagrid where the links are listed.
When they were all pdf files, I could just use {0}.pdf but now I'm not sure. How can I do that?
The issue is a little trickier for me because the links are in a virtual directory on the intranet server. So I do a server.mappath to the virtual directory but then the "DataNavigateUrlFormatString" will be:
"http://myintranet.com/virtualDir/qty/csr/2008/" and I used to just add the "/{0}.pdf " but of course that doesn't work now.
help?
0
 
LVL 86

Expert Comment

by:Mike Tomlinson
ID: 24053132
Add the actual FileInfo instance to your Table:

    filesTable.Columns.Add("FileInfo", Type.GetType("System.IO.FileInfo"))

Then in the loop:

    drFiles("FileInfo") = filesInfo

Now you can get it back out with a cast:

    Dim fi As FileInfo = CType(YourDataRowHere("FileInfo"), FileInfo)
    Dim FullName As String = fi.FullName
    ' ...do something with "FullName"...


0
 

Author Comment

by:lakhi
ID: 24053731
Sorry - I'm still a bit confused. I understand how to get the filename with and without the extension but when I set up the datagrid link, I get lost.
If I have:
    Dim fi As FileInfo = CType(YourDataRowHere("FileInfo"), FileInfo)
    Dim FullName As String = fi.FullName

Then how do I reference it in the datagrid hyperlink column. Here is what I mean:
<asp:HyperLinkColumn DataNavigateUrlField="Name" DataNavigateUrlFormatString="http://myintranet.com/virtualDir/qty/csr/2008/" **** DataTextField="Name" Target="_blank">
**** Can I just put "FullName" at this point or how do I do that?
Sorry to be a pest...
0
 
LVL 86

Expert Comment

by:Mike Tomlinson
ID: 24053888
(you're not being a pest)

*** I'm NOT a web programmer though ***         =(

Couldn't you just add an extra column to your datatable that has the filename with the extension on it?

    filesTable.Columns.Add("FileName", Type.GetType("System.String"))
    ...
    drFiles("FileName") = filesInfo.Name ' This WILL have the extension on it

Then you could use your previous code that worked for just PDFs, but with "FileName" instead of "Name".

Sorry if that makes no sense.  Like I said, I'm not a web programmer.  =\

0
 

Author Comment

by:lakhi
ID: 24053958
I did post my question in the "Programming for ASP.Net"
If you aren't a web programmer, who else do I ask?
0
 
LVL 86

Expert Comment

by:Mike Tomlinson
ID: 24054053
You also posted in the GENERIC .Net Topic areas with a code snippet dealing almost exclusively with non web specific code.  I looked at your question and it seemed like I could answer just the part you needed w/o knowing any web programming...and I did.  I showed how to use System.IO.GetFileNameWithoutExtension().

I'll hit the "Request Attention" button and they can get more attention to your question.

Apologies...
0
 

Author Comment

by:lakhi
ID: 24054070
Oh! That makes sense.
Obviously, I'm new at this.
I think I will post it as a separate question because you were so helpful with my main question.
Thank you very much.
0
 

Author Closing Comment

by:lakhi
ID: 31565889
Very helpful. I really needed a web programmer but I didn't post my question in the right place and the Expert who helped me did a great job! Thanks!
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In my previous two articles we discussed Binary Serialization (http://www.experts-exchange.com/A_4362.html) and XML Serialization (http://www.experts-exchange.com/A_4425.html). In this article we will try to know more about SOAP (Simple Object Acces…
This document covers how to connect to SQL Server and browse its contents.  It is meant for those new to Visual Studio and/or working with Microsoft SQL Server.  It is not a guide to building SQL Server database connections in your code.  This is mo…
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…
Want to learn how to record your desktop screen without having to use an outside camera. Click on this video and learn how to use the cool google extension called "Screencastify"! Step 1: Open a new google tab Step 2: Go to the left hand upper corn…

650 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question