mirror of
https://github.com/kwsch/PKHeX
synced 2024-12-03 17:29:13 +00:00
Merging in changes from upstream.
Updating Util.cs to use the Path.DirectorySeparatorChar member instead of hard coded backslashes
This commit is contained in:
parent
67616abb2e
commit
3dd47412e7
2 changed files with 37 additions and 8 deletions
43
Misc/Util.cs
43
Misc/Util.cs
|
@ -138,7 +138,36 @@ namespace PKHeX
|
||||||
string[] DriveList = Environment.GetLogicalDrives();
|
string[] DriveList = Environment.GetLogicalDrives();
|
||||||
for (int i = 1; i < DriveList.Length; i++)
|
for (int i = 1; i < DriveList.Length; i++)
|
||||||
{
|
{
|
||||||
string potentialPath_SDF = Path.Combine(DriveList[i], "filer\\UserSaveData\\");
|
/*
|
||||||
|
Comment from SoujiSeta. I am putting this here as example of the NoralizePath function
|
||||||
|
To be more portable the the "filer\\UserSaveData\\" string should be changed to
|
||||||
|
"filer" + Path.DirectorySeparator + "UserSaveData" + Path.DirectorySeparator, but this
|
||||||
|
example is used to illustrate whath NormalizePath does.
|
||||||
|
It uses the URI class URI.LocalPath function to get an operating specific file path.
|
||||||
|
It then uses the Path.GetFullPath function to get an absoulute canonical path to the file
|
||||||
|
or directory. Path.GetFullPath function would also convert any backslashes to forward slashes if
|
||||||
|
it is running on a non-Windows platform.
|
||||||
|
Finally the TrimEnd function is to remove any trailing backslashes or forward slashes for
|
||||||
|
consistency so that the user always knows that any path that this function returns will
|
||||||
|
never end in a slash.
|
||||||
|
|
||||||
|
Below are examples of how this works
|
||||||
|
Windows Examples
|
||||||
|
F:\filer\UserSaveData\ -> F:\filer\UserSaveData
|
||||||
|
G:/filer/UserSaveData/ -> G:\filer\UserSaveData
|
||||||
|
|
||||||
|
Unix Example
|
||||||
|
/mnt/usb_drive/filer\UserSaveData\ -> /mnt/usb_drive/filer/UserSaveData
|
||||||
|
|
||||||
|
FYI: The Directory.Exists function does not need to have a trailing slash to work as it looks
|
||||||
|
at the name without any trailing path seperators
|
||||||
|
|
||||||
|
I have tested this both on Windows and linux
|
||||||
|
I don't mind if you remove this comment if you fill it is no longer needed
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
string potentialPath_SDF = NormalizePath(Path.Combine(DriveList[i], "filer\\UserSaveData\\"));
|
||||||
if (Directory.Exists(potentialPath_SDF))
|
if (Directory.Exists(potentialPath_SDF))
|
||||||
{
|
{
|
||||||
path_SDF = potentialPath_SDF;
|
path_SDF = potentialPath_SDF;
|
||||||
|
@ -155,14 +184,14 @@ namespace PKHeX
|
||||||
// Loop through all the folders in the Nintendo 3DS folder to see if any of them contain 'title'.
|
// Loop through all the folders in the Nintendo 3DS folder to see if any of them contain 'title'.
|
||||||
for (int i = folders.Length - 1; i > 0; i--)
|
for (int i = folders.Length - 1; i > 0; i--)
|
||||||
{
|
{
|
||||||
if (File.Exists(Path.Combine(folders[i], "000011c4\\main"))) return Path.Combine(folders[i], "000011c4"); // OR
|
if (File.Exists(Path.Combine(folders[i], "000011c4" + Path.DirectorySeparatorChar + "main"))) return Path.Combine(folders[i], "000011c4"); // OR
|
||||||
if (File.Exists(Path.Combine(folders[i], "000011c5\\main"))) return Path.Combine(folders[i], "000011c5"); // AS
|
if (File.Exists(Path.Combine(folders[i], "000011c5" + Path.DirectorySeparatorChar + "main"))) return Path.Combine(folders[i], "000011c5"); // AS
|
||||||
if (File.Exists(Path.Combine(folders[i], "0000055d\\main"))) return Path.Combine(folders[i], "0000055d"); // X
|
if (File.Exists(Path.Combine(folders[i], "0000055d" + Path.DirectorySeparatorChar + "main"))) return Path.Combine(folders[i], "0000055d"); // X
|
||||||
if (File.Exists(Path.Combine(folders[i], "0000055e\\main"))) return Path.Combine(folders[i], "0000055e"); // Y
|
if (File.Exists(Path.Combine(folders[i], "0000055e" + Path.DirectorySeparatorChar + "main"))) return Path.Combine(folders[i], "0000055e"); // Y
|
||||||
|
|
||||||
// I don't know
|
// I don't know
|
||||||
if (File.Exists(Path.Combine(folders[i], "00055d00\\main"))) return Path.Combine(folders[i], "00055d00"); // X
|
if (File.Exists(Path.Combine(folders[i], "00055d00" + Path.DirectorySeparatorChar + "main"))) return Path.Combine(folders[i], "00055d00"); // X
|
||||||
if (File.Exists(Path.Combine(folders[i], "00055e00\\main"))) return Path.Combine(folders[i], "00055e00"); // Y
|
if (File.Exists(Path.Combine(folders[i], "00055e00" + Path.DirectorySeparatorChar + "main"))) return Path.Combine(folders[i], "00055e00"); // Y
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3612,7 +3612,7 @@ namespace PKHeX
|
||||||
OpenPKX.RestoreDirectory = true;
|
OpenPKX.RestoreDirectory = true;
|
||||||
OpenPKX.FilterIndex = 4;
|
OpenPKX.FilterIndex = 4;
|
||||||
}
|
}
|
||||||
else if (Path.Combine(cyberpath, "root")))
|
else if (Directory.Exists(Path.Combine(cyberpath, "root")))
|
||||||
{
|
{
|
||||||
OpenPKX.InitialDirectory = Path.Combine(cyberpath, "root");
|
OpenPKX.InitialDirectory = Path.Combine(cyberpath, "root");
|
||||||
OpenPKX.RestoreDirectory = true;
|
OpenPKX.RestoreDirectory = true;
|
||||||
|
|
Loading…
Reference in a new issue