Comparing files in VS 2013 - console application

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
LuckyLucksAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

jmcmunnCommented:
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
Fernando SotoRetiredCommented:
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
Fernando SotoRetiredCommented:
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
LuckyLucksAuthor Commented:
C#
0
Fernando SotoRetiredCommented:
// 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

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.