/// <summary>
        ///   Copies data from a source stream to a target stream.</summary>
        /// <param name="source">
        ///   The source stream to copy from.</param>
        /// <param name="target">
        ///   The destination stream to copy to.</param>
        public void AddFile(string File)
        {
            byte[]   data;
            int      imageIndex = 0;
            DateTime Filedate;

            if (System.IO.Directory.Exists(File))
            {
                string fileName;
                // ist ein verzeichnis
                do
                {
                    fileName = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString();
                }while (System.IO.Directory.Exists(fileName));
                System.IO.Directory.CreateDirectory(fileName);
                fileName += "\\" + File.Substring(File.LastIndexOf('\\') + 1) + ".zip";
                using (Zip zip = Zip.Create(fileName, "Original source: " + File))
                {
                    zip.AddFolder(Zip.Compression.Deflate, File, "");
                    //zip.Close();
                }
                data       = System.IO.File.ReadAllBytes(fileName);
                imageIndex = ReadIcons(fileName);
                System.IO.File.Delete(fileName);
                System.IO.Directory.Delete(fileName.Substring(0, fileName.LastIndexOf('\\')));
                Filedate = System.IO.Directory.GetLastWriteTime(File);
            }
            else
            {
                data       = System.IO.File.ReadAllBytes(File);
                imageIndex = ReadIcons(File);
                Filedate   = System.IO.File.GetLastWriteTime(File);
            }
            files.Add(new VirtualFile(smallImageList.Images[imageIndex], largeImageList.Images[imageIndex], File.Substring(File.LastIndexOf("\\") + 1), File, data, Filedate, DateTime.Now));
            files[files.Count - 1].AddToListView(listView1);
        }