AcManager.PackedHelper.ExtractToFile C# (CSharp) Méthode

ExtractToFile() private méthode

private ExtractToFile ( string id ) : string
id string
Résultat string
        private string ExtractToFile(string id) {
            var hash = _references?.GetString(id + "//hash");
            if (hash == null) {
                throw new Exception($"Assembly {id} is missing");
            }

#if LOCALIZABLE
            _first = false;
#endif

            var prefix = id + "_";
            var name = prefix + hash + ".dll";
            var filename = Path.Combine(_temporaryDirectory, name);
            if (File.Exists(filename)) {
                if (_logFilename != null) {
                    Log("Already extracted: " + filename);
                }

                return filename;
            }

            Log("Extracting resource: " + filename);

            var bytes = GetData(id);
            if (bytes == null) throw new Exception($"Data for {id} is missing");

            if (_temporaryFiles == null) {
                _temporaryFiles = Directory.GetFiles(_temporaryDirectory, "*.dll").Select(Path.GetFileName).ToList();
            }

            var previous = _temporaryFiles.FirstOrDefault(x => x.StartsWith(prefix));
            if (previous != null) {
                Log("Removing previous version: " + previous);
                try {
                    File.Delete(Path.Combine(_temporaryDirectory, previous));
                    _temporaryFiles.Remove(previous);
                } catch (Exception e) {
                    Log("Can’t remove: " + e);
                }
            }

            Log("Writing, " + bytes.Length + " bytes");
            File.WriteAllBytes(filename, bytes);
            return filename;
        }