.net - FileInfoComparer Not Sorting Correctly (on LastWriteTime)
Dec 22, 2011
I have a simple (ASP.NET) web page that lists files of a particular type in a folder and renders them in a ListView.
I've tried to sort them by descending LastWriteTime, that is, in reverse date order. However, although the sort process does change the order of the array, it doesn't sort it correctly. For example, one item with a LastWriteTime of #6/3/2011 12:00:00 is top of the list, but another item with a LastWriteTime of #12/16/2011 12:00:00 is halfway down the list after sorting.
Code:
Dim dirInfo As New DirectoryInfo(Server.MapPath(AppSettings.Item("ContentDir")))
Dim FileArrayList As New ArrayList(dirInfo.GetFiles("*.msg", SearchOption.TopDirectoryOnly))
My DataGridView is not sorting my date column correclty and it doesn't seem to be sorting it by String either. The column is bound to a date property, all is done using the designer.The set which I'm viewing it on is 424 entries long, there should be two entries for each date and they should be next to each other (regardless if sorting by date or string)The last few dozen entries are sorted correctly but the initial entries are not.Initially every second entry at the start is correct. Here is an extract if some of the sorting it does.(The beginning of the sorted grid is on the left, and the end of grid is on the right)
When I look at a file on the server, Windows 7 explorer reports a Date Created date of 5/20/2010 10:49 AM, and a Date Modified date of 5/20/2010 10:50 AM. This is what I expect and what I believe to be true.
However, running my VB.NET code, when I do My.Computer.FileSystem.GetFileInfo(filespec).CreateTime, that value is something completely different: 12/31/1600 6:00:00 PM, and My.Computer.FileSystem.GetFileInfo(filespec).LastWriteTime is set to that same value (12/31/1600 6:00:00 PM).What am I doing wrong? I need to get the values associated with "Date Created" and "Date Modified" as displayed in Windows Explorer.
The solution was simple, I used LastWriteTime instead of CreationTime CreationTime will = time that file was placed on that drive LatWriteTime will = Last time that file was written too, thus the actual original creation time (unless file has been modified of course, which in my case [wmv files] is not going to happen)
I have an application written using VB.Net, framework 3.5.In the application I read LastWriteTime and CreationTime values for a file saved in file system. In general,the code works fine except one case when the application is started using Citrix environment. In this case the returned value for bithproperties is January 1, 1601.
I'm having my program sort an excel sheet by a few columns. However, it is only sorting by the first column not the rest that I specify.ere is my sort code below:
I have a WPF ObservableCollection which is bound to a ListBox and I have a Sort() method which when called will convert the ObservableCollection to a List(Of T), and undertakes a sort based on a date/time column within the collection.
The data is sorted, even when new items are added to the ObservableCollection, however the date/time isn't being correctly sorted. The data is sorting based on the date however it is very much random when it comes to the time portion. The following is an example of the outcomes I am experiencing:
[Code]...
Is there anything that I am doing incorrectly in this method that would cause the time portion not be included in the sort? Is there a better way of doing a sort?
How should I correctly use CancelEventAgrs/CancelEventHandler?Does checking e.Cancel will return always the "right" result, even if the event eventually could consume some time?
Class Foo Public Event Deleting As System.ComponentModel.CancelEventHandler Private myObjectsToDelete As List(Of Object)
I don't have access to VB.NET right now so I can't test this value:Dim lst As New List(Of String)(cookieValue.Split("$"c))i got this from another question , but was wondering if A. The list will populate correctly and B. What does the c represent?
Im struggling with gettings the values from the correct strings.txt in my resource files in my in folder when switching languages. I have a [URL] (for English) and a domain.nl (for Dutch). It however doesnt seem to matter which domain I use and how I set the currentUICulture, the language shown to the user is always the same!
I'm having a problem over here; I'm developing a DirectX 9 application, and for some reason, I can't figure the way to close the application completely. This has never happened to me, to be honest. I am using Application.Exit(), which doesn't seem to do anything - it just closes the form, but the program is still running. I have also tried End, but it throws a run-time error I can't seem to figure out.
I have been making a text based noughts and crosses game and trying to convert an alpha grid reference into a number to run the logic sequence that decides whether the an input is valid. I am using the asc command to convert but it just keeps putting up the error: Conversion from string "a" to type 'Double' is not valid, when it reaches the line If (Asc(Left(choice, 1)) >= 65 And Asc(Left(choice, 1)) <= 67) Or (Asc(Left(choice, 1)) >= 97 And Asc(Left(choice, 1) <= 97))Choice is the input and has already been checked for length, whether it contains an alpha and numeric input (and where they are) and whether the numeric value is valid.
This form works in VB .NET sendMsg = "<CStatus timestamp=""0"" " & _ "type=""login"" " & _ "cid = """ & cID & """ " & _ "key=""" & loginKey & """ />"
But I can't get it work in C# sendMsg = "<CStatus timestamp="0" type="login" cid="" + cID + "" key="" + loginKey + "" />";
It does not give the same effect. I want this as an output: <CStatus timestamp="0" type="login" cid="var_cid" key="var_key"/>; Is there any stringXml command in C# or another way to use double quotes in string? Solved it with XmlTextWriter
For some reason I can not get some fields to calculate correctly. It seems anything I enter over 24 in the Pay Rate field it throws it spits out the exact numbers I am trying to multiply. The FWT (0.2), FICA(0.08),and State fields (0.25) respectively.
I 'm having no trouble coding, I'm back to my initial printing problems. The program printed Avery labels in a variety of sizes. I created the label templates on 8.5 x 11 forms and then printed the forms. This cannot be done in VB 2008 for a variety of reasons:
1) The form size cannot be larger than the screen size I got around this by creating a new form class that matched my dimensions.
2) printform only does screen shots. This was a major barrier. First of all I can't get printform to print my custom form because it's not a member of system.window.forms.form, it's a class in system.window.forms.usercontrol. However, even if it was in the correct class, it wouldn't work correctly because printform in VB.net, does a screen capture of the form and then reduces the image on the printout.
So that is my dilema. I do not know how to use the reporting tool, but I can see that it must be binded to a database. Although my application does use a database, I want to be able to massage the data before printing it. And the application does more than just print labels. There are also custom reports that need to be printed.
I am currently working on a project that will read HTML pages and store some information. I am doing this by loading the HTML page into a webbrowser, then viewing the source of the page by using:
Evey time the "bomb" image pops up, the entire thing seems to break. I have trouble shooted this simple game for most of the day trying to figure out where the break is but Ive had little luck. I'll have to post this in multi post because it will not let me post all in one block.
Ive seen that people use Form.Close() and Application.Close(), but what if I have many forms, and I may have forgot to close one of the forms correctly, is there a way to exit the application that actually checks to make sure that all the processes related to the program are closed first? I read on another forum that Application.Exit() is a bad way to close the program, and I found an example code of how to do it the right way, but Ive never found this anywhere else before.
I have a issue with loading a collection. The issue is that when I load a collection up with multiple objects that the only items that are in the collection is duplicates of the last object that was added in. I was through the process of creating the new object and it is loading correctly but when it adds it to the collection, it changes all the prevoius objects with the current object. Here is the code that I am using. I have been messing around with this code for a day now and can't figure it out.
how do you correctly dispose a shape in vb.net ie when you draw a rectangle using the pen function how do I depose it so that it will disappear from the form, for some reason once its drawn if I draw a new shape it keeps the previous one and just overlays the new one and I use shape.dispose, and pen.dispose?
It seems like I keep having problems with dates. I am using the following code:
Dim LocalDateCultureProvider As New CultureInfo(CultureInfo.CurrentCulture.ToString) Dim CurrentDate As DateTime = Convert.ToDateTime(System.DateTime.Now.ToString("dd/MM/yyyy"), System.Globalization.CultureInfo.InvariantCulture) ExpiryDate = DateTime.ParseExact(strDate, "dd/MM/yyyy", LocalDateCultureProvider) If DateTime.Compare(ExpiryDate, CurrentDate) < 0 Then MsgBox("This file has expired.")
In fact I noticed that my application won't display correctly on DPI settings other than 96 DPI.Well, this is a critical problem for me, I don't know how can I disregard it and show my application normally without problem?
i am aware of the dispose method to free a resouce that is in use, but ive run into trouble and ive no idea how to dispose of an image because ive assigned it using the "new" keyword
While i < directorylist.Count Dim imagePath As String = directorylist(i) + "\folder.jpg" ' ResizeImage(directorylist(i) + "\", imageName, 50) Try
[code].....
i know that when i assign an image to a picturebox i can feel up the resource using picturebox1.dispose()here im using "new" so i dont know what to dispose of??
I have a single form called 'FolderSelector' with a label, textbox and a button.The problem I'm having is that everytime I run the application, the only thing that shows up is a blank form called 'Form1', the program runs everything it should do except to show the actual form which is really weird.Here's the code in case there's something in there that's causing it that I haven't spotted.
Imports System.IO.Directory Public Class FolderSelector Public Const SPI_SETDESKWALLPAPER As Integer = &H14 Public Const SPIF_UPDATEINIFILE As Integer = &H1
I am making a program that can backup files and folders, i cant seem to get my progressbar to show correctly, is there a way (without showing the default windows copying progressbar) to get the total MB of all files and sub folders in a directory and then make a progressbar have max = MB and how to step this progressbar?If it is not worth it, it is not fun - you say programmers are boring but i say they are worth it.
I'm developing a program (VB.NET Form) that has printing function, then i have to alert user when an error occurred such as paper out, paper jam or etc. I found that .NET has WIN32_Printer class use for retrieve printer information and status. I can get printer status (Idle, Printing) correctly except offline, but for DetectedErrorState... always get 0 if printer has no problem and 2 if any problem found. (from reference 0 means Unknown and 2 means No Error) How can i get printer state correctly? Is this related to printer manufacturer or their driver? Because their application can alert correctly, i guess that driver never return value to WIN32 Class.