void CompareByContent()
        {
            //get the selected items
            var selectedItems = inFocusDataGrid.SelectedItems;

            //make sure no more than 2 items are selected and that theese files are txt
            int count = 0;

            foreach (var item in selectedItems)
            {
                count++;
                if (count > 2)
                {
                    MessageBox.Show("Too many items selected!");
                    return;
                }

                //check if the current item is a txt file
                if (((DirectoryItems)item).Extension != ".txt")
                {
                    MessageBox.Show("Invalid file type!");
                    return;
                }
            }

            DirectoryItems file1 = (DirectoryItems)selectedItems[0];
            DirectoryItems file2 = (DirectoryItems)selectedItems[1];
        }
        /// <summary>
        /// moves or copies files
        /// </summary>
        /// <param name="move">true for move, false for copy</param>
        private void FileOperation(FileOperationTypes operationType)
        {
            try
            {
                var    filesToMove = inFocusDataGrid.SelectedItems;
                string destinationFolder;

                //set the destiation folder as the path to the folder opened in the other side to the selected item's side
                if (inFocusDataGrid == DataGrid1)
                {
                    destinationFolder = currentPath2;
                }
                else
                {
                    destinationFolder = currentPath1;
                }

                //if it is an Add to archive command, perform it and exit the function
                if (operationType == FileOperationTypes.AddToArchive)
                {
                    //Todo: fix this

                    DirectoryItems currentDirectoryItem = (DirectoryItems)filesToMove[0];
                    string         destination          = System.IO.Path.Combine(destinationFolder, currentDirectoryItem.Name);

                    UpdateDataGrid(DataGrid1, currentPath1, Directories1);
                    UpdateDataGrid(DataGrid2, currentPath2, Directories2);

                    return;
                }

                //if it is an extract archive command, perform it and exit the function
                if (operationType == FileOperationTypes.ExtractArchive)
                {
                    //Todo: fix it

                    DirectoryItems currentDirectoryItem = (DirectoryItems)filesToMove[0];
                    string         destination          = System.IO.Path.Combine(destinationFolder, currentDirectoryItem.Name);

                    UpdateDataGrid(DataGrid1, currentPath1, Directories1);
                    UpdateDataGrid(DataGrid2, currentPath2, Directories2);

                    return;
                }

                foreach (var file in filesToMove)
                {
                    DirectoryItems currentDirectoryItem = (DirectoryItems)file;
                    string         destination          = System.IO.Path.Combine(destinationFolder, currentDirectoryItem.Name);

                    //check if we move a file or a folder in order to use the appropriate command
                    if (currentDirectoryItem.Extension == "<DIR>")
                    {
                        switch (operationType)
                        {
                        case FileOperationTypes.Move:
                        {
                            Directory.Move(currentDirectoryItem.FullPath, destination);
                            break;
                        }

                        case FileOperationTypes.Copy:
                        {
                            CopyDir(currentDirectoryItem.FullPath, destination);
                            //CopyDirectoryCMD(currentDirectoryItem.FullPath, destination);
                            break;
                        }
                        }
                    }
                    else
                    {
                        //if it is a file it must have a usefull extension, so add it to the destination
                        destination += currentDirectoryItem.Extension;

                        switch (operationType)
                        {
                        case FileOperationTypes.Move:
                        {
                            File.Move(currentDirectoryItem.FullPath, destination);
                            break;
                        }

                        case FileOperationTypes.Copy:
                        {
                            File.Copy(currentDirectoryItem.FullPath, destination);
                            break;
                        }
                        }
                    }
                }

                UpdateDataGrid(DataGrid1, currentPath1, Directories1);
                UpdateDataGrid(DataGrid2, currentPath2, Directories2);
            }
            catch (IOException ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }