Solved

Comparing files in VS 2013 - console application

Posted on 2014-03-04
5
285 Views
Last Modified: 2014-03-10
Hello EEE,

   I am trying this after a long while...created a new project in VS 2013 below. Now I need to read in two files from C:\logs. One is called All.txt, the other is called other.txt. Both have a listing of full paths for files under C:\logs\All and C:logs\Other.

I would like to compare both text files (just file names with the leading directories stripped) and find which ones are not in both.

How can I do that?


Module Module1

    Sub Main()

    End Sub

End Module
0
Comment
Question by:LuckyLucks
  • 3
5 Comments
 
LVL 12

Expert Comment

by:jmcmunn
ID: 39904217
Psuedocode...

Open both files
   var line=ReadLineFromFile1
   while(not eof)
      add stripped file name to Firstlist<string>

   line = ReadLineFromFile2
   while(not eof)
      if stripped file is in list, remove from Firstlist
      else add to Secondlist<string>

Close both files
now, all of the files in Firstlist are in the first file, but not the second one
and, all of the files in Secondlist are in the second file, not the first

if you need help on any specific part of that, feel free to post here or ask a new question.  It is all very easily Googled.
0
 
LVL 62

Expert Comment

by:Fernando Soto
ID: 39904294
Hi LuckyLucks;

The code snippet below should give you what you are looking for.

'Read all the file names and remove directory part and store in array
Dim allFiles As String() = File.ReadAllLines("C:\Working Directory\All.txt") _
                           .Select(Function(f) Path.GetFileName(f)).ToArray()

Dim OtherFiles As String() = File.ReadAllLines("C:\Working Directory\Other.txt") _
                             .Select(Function(f) Path.GetFileName(f)).ToArray()

' And array of all files in All.txt that are NOT in Other.txt
Dim allNotInOthers As String() = allFiles.Except(OtherFiles).ToArray()
' And array of all files in Other.txt that are NOT in All.txt
Dim otherNotInAll As String() = OtherFiles.Except(allFiles).ToArray()

Open in new window

0
 
LVL 62

Expert Comment

by:Fernando Soto
ID: 39904348
Hi LuckyLucks;

In your question you have VB code snippet but in the question tag you have .Net and C#. If you need to have the code translated to C# please let me know.
0
 

Author Comment

by:LuckyLucks
ID: 39907603
C#
0
 
LVL 62

Accepted Solution

by:
Fernando Soto earned 500 total points
ID: 39907780
// Read all the file names and remove directory part and store in array
string[] allFiles  = File.ReadAllLines(@"C:\logs\All.txt")
                         .Select(f => Path.GetFileName(f)).ToArray();

string[] OtherFiles = File.ReadAllLines(@"C:\logs\Other.txt")
                          .Select(f => Path.GetFileName(f)).ToArray();

// And array of all files in All.txt that are NOT in Other.txt
string[] allNotInOthers = allFiles.Except(OtherFiles).ToArray();
// And array of all files in Other.txt that are NOT in All.txt
string[] otherNotInAll = OtherFiles.Except(allFiles).ToArray();               

Open in new window

0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Wouldn’t it be nice if you could test whether an element is contained in an array by using a Contains method just like the one available on List objects? Wouldn’t it be good if you could write code like this? (CODE) In .NET 3.5, this is possible…
A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

932 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

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now