Code: Select all
using System.Diagnostics; //VS22 automatically added this reference during one of my attempts to make this work but I can't remember which it was used for, might not be necessary
class Program
{
static string gameAddress = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + @"\AppData\LocalLow\Owlcat Games"; //... more specific [url=viewtopic.php?t=25360]environment[/url] locations, just an example
static string Locale = "";
static string Storage = @"C:\Program Files\FileManager";
void Main()
{
if (File.Exists(Storage))
{
Console.WriteLine("True");
} else
{
Console.WriteLine("False");
try
{
Directory.CreateDirectory(Storage);
} catch (Exception ex) { Console.WriteLine(ex); }
}
Console.WriteLine("check 1")
FileFetch();
Console.WriteLine("check 2")
}
public static async void FileFetch() //async for the future; checking available files during startup
{
int errorPos = 0;
try
{
string[] files = Directory.GetDirectories(gameAddress, "", SearchOption.AllDirectories);
foreach (string file in files)
{
Console.WriteLine(file);
Locale = file; //just grabbing something to see if I can edit it
}
errorPos++;
}
catch (Exception ex)
{
Console.WriteLine("1: " + ex);
}
try
{
string tmpFile = @"C:\tmp\testFile";
if (!File.Exists(tmpFile))
{
File.Create(tmpFile);
}
errorPos++;
string source = @"C:\Users\peppe\AppData\LocalLow\Owlcat Games\Warhammer 40000 Rogue Trader\Saved Games\Auto_1.zks";
// try to copy a file from here?
File.Copy(source, tmpFile, true);
Console.WriteLine("Check 3");
File.Copy(tmpFile, @"C:\Users\peppe\AppData\LocalLow\Owlcat Games\Warhammer 40000 Rogue Trader\Saved Games\Auto_2.zks", true); // res should be 2435kb instead of 2185kb
Console.WriteLine("Success!");
Process.Start("explorer.exe", @"C:\Users\peppe\AppData\LocalLow\Owlcat Games\Warhammer 40000 Rogue Trader\Saved Games");
//This worked, so now im really confused
} catch (Exception ex)
{
Console.WriteLine(errorPos + " " + ex);
}
}
}
Bearbeiten: Wie Frox betonte, könnte der Fehler dadurch verursacht werden, dass Filestream versucht, einen Ordner statt einer tatsächlichen Datei zu lesen; Ich habe meinen Code auf die Verwendung von Directory.GetDirectories(); umgestellt. um das zu erreichen, was ich anfangs mit StreamReader testen wollte, aber beim Versuch, bestimmte Dateien zu manipulieren oder sogar zu erstellen, wird immer noch die UnauthorizedAccessException ausgelöst, daher wäre eine Auflösung der Berechtigungen immer noch wünschenswert. Habe Directory.CreateDirectory() mehrere Ebenen tiefer auf meinem Desktop getestet und hatte keine Probleme, aber das Erstellen in bestimmten von Steam erstellten Ordnern und sogar C:\Programme\ verursacht den Fehler.
Bearbeiten 2: Habe einige Dinge geschrieben, um manuell zu überprüfen, ob ich in und aus bestimmten tiefen Dateien kopieren kann, und es hat perfekt funktioniert, aber ich erhalte immer noch die Fehlermeldung, wenn ich versuche, einen Ordner in C:\Programme zu erstellen. Die Methode „CreateDirectory“ hat beim Schreiben auf den Desktop wie vorgesehen funktioniert.
Mobile version