Beispiel #1
0
        public static void SaveUnknownFile(byte[] data, DirectoryInfo directoryInfo)
        {
            string fileName  = "Unknown_" + Encrypt.SimplexHash.ComputeMD5(data.Length.ToString());
            string filePath  = Path.Combine(directoryInfo.FullName, fileName);
            string extension = "";

            //Find Extension
            try {
                using (MemoryStream stream = new MemoryStream(data)) {
                    ImageFileFormat format = IOUtility.GetImageFormat(stream);

                    if (format != ImageFileFormat.unknown)
                    {
                        extension = "." + format.ToString();
                        filePath += extension;
                    }
                }
            } catch (Exception ex) {
                GDebug.Log(ex.ToString(), GLogLevel.Warnning);
            }

            int num = 2;

            while (File.Exists(filePath))
            {
                filePath = Path.Combine(directoryInfo.FullName, fileName + num + extension);
                ++num;
            }

            using (FileStream fileStream = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite)) {
                fileStream.Write(data, 0, data.Length);
            }
        }
Beispiel #2
0
        public static void DownloadFile(string url, DirectoryInfo directoryInfo)
        {
            byte[] data = DownloadData(url);

            //GetPath
            Uri    uri = new Uri(url);
            string localPath;

            if (url.Length > 6 && url.Substring(url.Length - 6) == ":large")
            {
                //Twitter
                localPath = new Uri(url.Substring(0, url.Length - 6)).LocalPath;
            }
            else
            {
                localPath = uri.LocalPath;
            }
            string filePath  = Path.Combine(directoryInfo.FullName, Path.GetFileName(localPath));
            string fileName  = Path.GetFileNameWithoutExtension(filePath);
            string extension = Path.GetExtension(filePath);

            //Find Extension
            if (string.IsNullOrEmpty(extension))
            {
                try {
                    using (MemoryStream stream = new MemoryStream(data)) {
                        ImageFileFormat format = IOUtility.GetImageFormat(stream);

                        if (format != ImageFileFormat.unknown)
                        {
                            extension = "." + format.ToString();
                            filePath += extension;
                        }
                        else
                        {
                            extension = "";
                        }
                    }
                } catch (Exception ex) {
                    GDebug.Log(ex.ToString(), GLogLevel.Warnning);
                    extension = "";
                }
            }

            int num = 2;

            while (File.Exists(filePath))
            {
                filePath = Path.Combine(directoryInfo.FullName, fileName + num + extension);
                ++num;
            }

            using (FileStream fileStream = new FileStream(filePath, FileMode.Create, FileAccess.ReadWrite)) {
                fileStream.Write(data, 0, data.Length);
            }
        }