?
Solved

Extended File Attributes - ASP.net 3.5

Posted on 2008-10-20
3
Medium Priority
?
726 Views
Last Modified: 2012-05-05
Is there any way to access extended attributes of a file? Specifically I am referring to attributes such as; Title, Author, Comments, Keywords?Tags (all can be found by right-clicking a file and then clicking summary). Are these attributes accessible through ASP.net 3.5? VB in particular but C# is fine.
0
Comment
Question by:Patrick_Nisbet
[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
  • 2
3 Comments
 
LVL 16

Expert Comment

by:Gyanendra Singh
ID: 22768242
please find sample code
private void btnProperties_Click(object sender, EventArgs e)
 
{
 
this.txtProperties.Text = null;
 
sourceFileName = null;
 
openFileDialog.ShowDialog();
 
if (!System.IO.File.Exists(sourceFileName))
 
{
 
MessageBox.Show("The selected file either does not exist or you didn't pick any.");
 
return;
 
}
 
this.ClientSize = new System.Drawing.Size(415, 158);
 
this.txtProperties.Show();
 
this.btnHide.Show();
 
StringBuilder stbOutput = new StringBuilder("");
 
System.IO.FileAttributes Attributes = System.IO.File.GetAttributes(sourceFileName);
 
stbOutput.Append("Date of Creation: " + System.IO.File.GetCreationTime(sourceFileName) + "rn");
 
stbOutput.Append("Date of Modification: " + System.IO.File.GetLastWriteTime(sourceFileName) + "rn");
 
stbOutput.Append("Date of Last Access: " + System.IO.File.GetLastAccessTime(sourceFileName) + "rn");
 
stbOutput.Append("Attributes: rn");
 
stbOutput.Append("Archive: " + Convert.ToBoolean((Attributes & System.IO.FileAttributes.Archive) == (System.IO.FileAttributes.Archive)) + " ");
 
stbOutput.Append("Directory: " + Convert.ToBoolean((Attributes & System.IO.FileAttributes.Directory) == (System.IO.FileAttributes.Directory)) + "rn");
 
stbOutput.Append("Encrypted: " + Convert.ToBoolean((Attributes & System.IO.FileAttributes.Encrypted) == (System.IO.FileAttributes.Encrypted)) + " ");
 
stbOutput.Append("Hidden: " + Convert.ToBoolean((Attributes & System.IO.FileAttributes.Hidden) == (System.IO.FileAttributes.Hidden)) + "rn");
 
stbOutput.Append("Normal: " + Convert.ToBoolean((Attributes & System.IO.FileAttributes.Normal) == (System.IO.FileAttributes.Normal)) + " ");
 
stbOutput.Append("Read-only: " + Convert.ToBoolean((Attributes & System.IO.FileAttributes.ReadOnly) == (System.IO.FileAttributes.ReadOnly)) +"rn");
 
stbOutput.Append("System: " + Convert.ToBoolean((Attributes & System.IO.FileAttributes.System) == (System.IO.FileAttributes.System)) + " ");
 
stbOutput.Append("Temporary: " + Convert.ToBoolean((Attributes & System.IO.FileAttributes.Temporary) == (System.IO.FileAttributes.Temporary)));
 
txtProperties.Text = stbOutput.ToString();
 
}

Open in new window

0
 

Author Comment

by:Patrick_Nisbet
ID: 22769876
Hi,

Thanks for your reply. This code looks like it lists the standard file FileAttributes but not the extended one like Title, Author, Comments, Keywords/Tags.
It these ones I need to access.
Thanks
0
 

Accepted Solution

by:
Patrick_Nisbet earned 0 total points
ID: 22818891
Hi
I found the solution of Expert Exchange though there was a lot of confusion as to whether it worked on non-Office file or jpgs. It does. You need to download in and register on your server the DSOFile. Check this out:
http://www.microsoft.com/technet/scriptcenter/resources/tales/sg0305.mspx
Some of my code is below. I read the contents of a directory (jpgs and pdfs) and then display the contents with the extented information.
Thanks for your help

        Dim myDirInfo As DirectoryInfo
        Dim arrFileInfo As Array
        Dim myFileInfo As FileInfo
 
 
        ' Dim myContents As String = filepath_id & " - " & mydirectory_file & " - " & myFilter & " - " & strLastPath & "<table width='100%'>"
        Dim myContents As String = "<div id='title_div'></div><table width='100%'>"
 
        Try
 
            ' Get Directory & File Info
            myDirInfo = New DirectoryInfo(strPath)
 
            arrFileInfo = myDirInfo.GetFiles()
 
            Dim myExcludeArray As Array
            Dim myRFileTruncated As String
            Dim myDisplayPrefix As String
            Dim myDisplaySuffix2 As String
 
            ' Iterate the FileInfo objects and extract te data
            For Each myFileInfo In arrFileInfo
 
                Dim objFile As Object = CreateObject("DSOFile.OleDocumentProperties")
                objFile.Open(myFileInfo.FullName, "True")
 
                Select Case filepath_id
 
                    Case "cashe"       'cashe
 
                        If InStr(myDisplaySuffix, "`") > 0 Then
                            myDisplayPrefix = Left(myDisplaySuffix, InStr(myDisplaySuffix, "`") - 1)
                            myDisplaySuffix2 = Mid(myDisplaySuffix, InStr(myDisplaySuffix, "`") + 1)
                        Else
                            myDisplayPrefix = ""
                            myDisplaySuffix2 = myDisplaySuffix
                        End If
 
 
 
                        If InStr(myFilter, "|") > 0 Then
 
 
 
                            If InStr(myFileInfo.Name, myFileSuffix) <> 0 And InStr(myFileInfo.Name, "_work.jpg") = 0 And InStr(myFileInfo.Name, "_solutions") = 0 And InStr(myFileInfo.Name, "A_2002") = 0 And InStr(myFileInfo.Name, "2001") = 0 And InStr(myFileInfo.Name, "AD") = 0 And InStr(myFileInfo.Name, "CH") = 0 And InStr(myFileInfo.Name, "LE") = 0 And InStr(myFileInfo.Name, "EA") = 0 And InStr(myFileInfo.Name, "OR") = 0 Then
 
                                myContents = myContents & "<tr valign='top'><td><a href='download.aspx?FileName=" & myFileInfo.Name & "&dir=" & myDir & "'><img src='" & myResources_URL & myDisplayDirectory & "\" & myDisplayPrefix & Left(myFileInfo.Name, Len(myFileInfo.Name) - myDisplayCutOff) & myDisplaySuffix2 & ".jpg' border='0' /></a></td>"
                                myContents = myContents & "<td><a href='download.aspx?FileName=" & myFileInfo.Name & "&dir=" & myDir & "'>" & myFileInfo.Name & "<br />" & objFile.SummaryProperties.Keywords & "</a></td>"
                                myContents = myContents & "<td>" & myFileInfo.Length & "</td>"
                                myContents = myContents & "<td>" & myFileInfo.Extension & "</td></tr>"
 
                            End If
 
                        Else
 
                            If InStr(myFileInfo.Name, myFileSuffix) <> 0 And InStr(myFileInfo.Name, "_work.jpg") = 0 And InStr(myFileInfo.Name, myFilter) <> 0 And InStr(myFileInfo.Name, "A_2002") = 0 And InStr(myFileInfo.Name, "2001") = 0 Then
 
                                myContents = myContents & "<tr valign='top'><td><a href='download.aspx?FileName=" & myFileInfo.Name & "&dir=" & myDir & "'><img src='" & myResources_URL & myDisplayDirectory & "\" & myDisplayPrefix & Left(myFileInfo.Name, Len(myFileInfo.Name) - myDisplayCutOff) & myDisplaySuffix2 & ".jpg' border='0' /></a></td>"
                                myContents = myContents & "<td><a href='download.aspx?FileName=" & myFileInfo.Name & "&dir=" & myDir & "'>" & myFileInfo.Name & "</a></td>"
                                myContents = myContents & "<td>" & CInt(myFileInfo.Length / 1000) & "K</td>"
                                myContents = myContents & "<td>" & myFileInfo.Extension & "</td></tr>"
 
                            End If
 
                        End If
 
End Select

Open in new window

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

I recently went through the process of creating a Calendar Control of events with the basis of using a database to keep track of the dates that are selectable, one requirement was to have the selected date pop-up in a simple lightbox.  At first this…
Introduction This article shows how to use the open source plupload control to upload multiple images. The images are resized on the client side before uploading and the upload is done in chunks. Background I had to provide a way for user…
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.
Suggested Courses

771 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