public static List <string> GetFilesNoCloud(string path, string filter = "*.*", SearchOption so = SearchOption.TopDirectoryOnly) { List <string> stringList = new List <string>(); try { foreach (string file in Directory.GetFiles(path, filter, SearchOption.TopDirectoryOnly)) { stringList.Add(file); } } catch (Exception ex) { } if (so == SearchOption.AllDirectories) { try { foreach (string directory in Directory.GetDirectories(path, "*.*", SearchOption.TopDirectoryOnly)) { List <string> filesNoCloud = DuckFile.GetFilesNoCloud(directory, filter, so); stringList.AddRange((IEnumerable <string>)filesNoCloud); } } catch (Exception ex) { } } return(stringList); }
public static void UploadAllCloudData() { foreach (string path in DuckFile.GetFilesNoCloud(DuckFile.profileDirectory, so: SearchOption.AllDirectories)) { DuckFile.SaveCloudFile(path); } foreach (string path in DuckFile.GetFilesNoCloud(DuckFile.levelDirectory, so: SearchOption.AllDirectories)) { DuckFile.SaveCloudFile(path); } foreach (string path in DuckFile.GetFilesNoCloud(DuckFile.optionsDirectory, so: SearchOption.AllDirectories)) { DuckFile.SaveCloudFile(path); } }
public static string[] GetFiles(string path, string filter = "*.*") { List <string> stringList = new List <string>(); if (!MonoMain.cloudOnly && Directory.Exists(path)) { stringList = DuckFile.GetFilesNoCloud(path, filter, DuckFile._getFilesOption); for (int index = 0; index < stringList.Count; ++index) { stringList[index] = stringList[index].Replace('\\', '/'); } } if (Options.Data.cloud && !MonoMain.disableCloud && Steam.IsInitialized()) { string localSavePath = DuckFile.GetLocalSavePath(path); if (localSavePath != null) { int count = Steam.FileGetCount(); for (int file = 0; file < count; ++file) { string name = Steam.FileGetName(file); int num = name.IndexOf(localSavePath); if (num != -1 && name.StartsWith("nq403216_") && num == "nq403216_".Length) { string source = name.Substring(num + localSavePath.Length, name.Length - (num + localSavePath.Length)); if (source[0] == '\\' || source[0] == '/') { source = source.Substring(1, source.Length - 1); } if (!source.Contains <char>('/') && !source.Contains <char>('\\') || DuckFile._getFilesOption == SearchOption.AllDirectories) { string str = path; if (!str.EndsWith("/")) { str += "/"; } if (!stringList.Contains(str + source)) { stringList.Add(path + source); } } } } } } return(stringList.ToArray()); }
public static string[] GetFiles(string path, string filter = "*.*") { path = path.Replace('\\', '/'); path = path.Trim('/'); string str1 = (Directory.GetCurrentDirectory() + "/").Replace('\\', '/'); List <string> stringList = new List <string>(); foreach (string path1 in DuckFile.GetFilesNoCloud(path, filter)) { if (!Path.GetFileName(path1).Contains("._")) { string str2 = path1.Replace('\\', '/'); int startIndex = str2.IndexOf(str1); if (startIndex != -1) { str2 = str2.Remove(startIndex, str1.Length); } stringList.Add(str2); } } return(stringList.ToArray()); }
private static bool AttemptCompile(ModConfiguration config) { if (config.noCompilation) { return(false); } List <string> filesNoCloud = DuckFile.GetFilesNoCloud(config.directory, "*.cs", SearchOption.AllDirectories); if (filesNoCloud.Count == 0) { return(false); } config.isDynamic = true; CRC32 crC32 = new CRC32(); byte[] numArray = new byte[2048]; foreach (string path in filesNoCloud) { using (FileStream fileStream = File.Open(path, FileMode.Open)) { while (fileStream.Position != fileStream.Length) { int blockLen = fileStream.Read(numArray, 0, numArray.Length); crC32.ProcessBlock(numArray, blockLen); } } } uint num = crC32.Finalize(); if (!ModLoader.forceRecompilation && File.Exists(config.hashPath)) { if (File.Exists(config.tempAssemblyPath)) { try { if ((int)BitConverter.ToUInt32(File.ReadAllBytes(config.hashPath), 0) == (int)num) { return(true); } } catch { } } } File.WriteAllBytes(config.hashPath, BitConverter.GetBytes(num)); if (ModLoader._provider == null) { ModLoader._provider = new CSharpCodeProvider(); ModLoader._parameters = new CompilerParameters(((IEnumerable <Assembly>)AppDomain.CurrentDomain.GetAssemblies()).Select <Assembly, string>((Func <Assembly, string>)(assembly => assembly.Location)).ToArray <string>()); ModLoader._parameters.GenerateExecutable = ModLoader._parameters.GenerateInMemory = false; } if (File.Exists(config.buildLogPath)) { File.SetAttributes(config.buildLogPath, FileAttributes.Normal); File.Delete(config.buildLogPath); } ModLoader._parameters.OutputAssembly = config.tempAssemblyPath; CompilerResults compilerResults = ModLoader._provider.CompileAssemblyFromFile(ModLoader._parameters, filesNoCloud.ToArray()); if (compilerResults.Errors.Count == 0) { return(true); } File.WriteAllLines(config.buildLogPath, compilerResults.Output.OfType <string>()); return(false); }