Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iOS: Some of the Environment.SpecialFolders values are incorrect with regards to Xamarin.iOS #41383

Closed
rolfbjarne opened this issue Aug 26, 2020 · 2 comments · Fixed by #41959
Milestone

Comments

@rolfbjarne
Copy link
Member

Description

Test code:

public void PrintSpecialFolders ()
{
	var specialFolders = Enum.GetValues (typeof (Environment.SpecialFolder));
	foreach (Environment.SpecialFolder folder in specialFolders) {
		var path = Environment.GetFolderPath (folder);
		var paths = path.Split ('/');
		for (var i = 0; i < paths.Length; i++) {
			if (paths [i].Length == 36 && paths [i].IndexOf ('-') >= 0)
				paths [i] = "<guid>";
		}
		path = string.Join ("/", paths);
		Console.WriteLine ($"{folder} -> {path}");
	}
}

The output is different between Xamarin.iOS and .NET (5.0.100-rc.1.20414.5 - tested in the simulator).

The folders with different values are:

.NET

Desktop -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Desktop
MyMusic -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Music
MyVideos -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Movies
DesktopDirectory -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Desktop
ProgramFiles -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Applications
MyPictures -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Pictures
Full output
Desktop -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Desktop
Programs -> 
MyDocuments -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents
MyDocuments -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents
Favorites -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Library/Favorites
Startup -> 
Recent -> 
SendTo -> 
StartMenu -> 
MyMusic -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Music
MyVideos -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Movies
DesktopDirectory -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Desktop
MyComputer -> 
NetworkShortcuts -> 
Fonts -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents/.fonts
Templates -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents/Templates
CommonStartMenu -> 
CommonPrograms -> 
CommonStartup -> 
CommonDesktopDirectory -> 
ApplicationData -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents/.config
PrinterShortcuts -> 
LocalApplicationData -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents
InternetCache -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Library/Caches
Cookies -> 
History -> 
CommonApplicationData -> /usr/share
Windows -> 
System -> 
ProgramFiles -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Applications
MyPictures -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Pictures
UserProfile -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>
SystemX86 -> 
ProgramFilesX86 -> 
CommonProgramFiles -> 
CommonProgramFilesX86 -> 
CommonTemplates -> /usr/share/templates
CommonDocuments -> 
CommonAdminTools -> 
AdminTools -> 
CommonMusic -> 
CommonPictures -> 
CommonVideos -> 
Resources -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Library
LocalizedResources -> 
CommonOemLinks -> 
CDBurning -> 

Xamarin.iOS

Desktop -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents/Desktop
MyMusic -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents/Music
MyVideos -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents/Videos
DesktopDirectory -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents/Desktop
ProgramFiles -> /Applications
MyPictures -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents/Pictures
Full output
Desktop -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents/Desktop
Programs -> 
MyDocuments -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents
MyDocuments -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents
Favorites -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Library/Favorites
Startup -> 
Recent -> 
SendTo -> 
StartMenu -> 
MyMusic -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents/Music
MyVideos -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents/Videos
DesktopDirectory -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents/Desktop
MyComputer -> 
NetworkShortcuts -> 
Fonts -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents/.fonts
Templates -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents/Templates
CommonStartMenu -> 
CommonPrograms -> 
CommonStartup -> 
CommonDesktopDirectory -> 
ApplicationData -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents/.config
PrinterShortcuts -> 
LocalApplicationData -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents
InternetCache -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Library/Caches
Cookies -> 
History -> 
CommonApplicationData -> /usr/share
Windows -> 
System -> 
ProgramFiles -> /Applications
MyPictures -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Documents/Pictures
UserProfile -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>
SystemX86 -> 
ProgramFilesX86 -> 
CommonProgramFiles -> 
CommonProgramFilesX86 -> 
CommonTemplates -> /usr/share/templates
CommonDocuments -> 
CommonAdminTools -> 
AdminTools -> 
CommonMusic -> 
CommonPictures -> 
CommonVideos -> 
Resources -> /Users/rolf/Library/Developer/CoreSimulator/Devices/<guid>/data/Containers/Data/Application/<guid>/Library
LocalizedResources -> 
CommonOemLinks -> 
CDBurning -> 
@Dotnet-GitSync-Bot
Copy link
Collaborator

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added the untriaged New issue has not been triaged by the area owner label Aug 26, 2020
@marek-safar marek-safar added area-System.Runtime os-ios Apple iOS and removed untriaged New issue has not been triaged by the area owner labels Aug 26, 2020
@marek-safar marek-safar added this to the 6.0.0 milestone Aug 26, 2020
@marek-safar
Copy link
Contributor

/cc @EgorBo

rolfbjarne added a commit to rolfbjarne/xamarin-macios that referenced this issue Aug 26, 2020
…ue to a .NET issue.

Ref: dotnet/runtime#41383

Fixes this link sdk test failure:

    [FAIL] SpecialFolder :   /Users/rolf/Library/Developer/CoreSimulator/Devices/0E45B8DF-05EF-47E7-A31F-3B829DEA2628/data/Containers/Data/Application/6454039E-D5F1-4C41-BF16-6C81CBAB1724/Applications
        Expected: True
        But was:  False
            at LinkSdk.LinkSdkRegressionTest.TestFolder(SpecialFolder folder, Boolean supported, Boolean exists, Boolean readOnly) in [...]/xamarin-macios/tests/linker/ios/link sdk/LinkSdkRegressionTest.cs:line 815
            at LinkSdk.LinkSdkRegressionTest.SpecialFolder() in [...]/xamarin-macios/tests/linker/ios/link sdk/LinkSdkRegressionTest.cs:line 900
@ghost ghost locked as resolved and limited conversation to collaborators Dec 7, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants