- Home /
Setting folder rights using DirectorySecurity gives 'This platform is not supported' error
Hi,
I'm creating a game which requires shared data between users that can be logged into the users Windows/Mac, e.g. a highscore system.
I'm using this code to set the read/write/execute user rights to the C:\ProgramData\GameFolder\ folder, so that everyone on the system can access the files correctly (if I don't do this, if a limited access user creates the folder, no other user on the computer can access it):
public void SetAccessRights(string folder) { // only do this on Windows if (Application.platform == RuntimePlatform.WindowsPlayer || Application.platform == RuntimePlatform.WindowsEditor) { // create security DirectorySecurity ds = new DirectorySecurity();
// 'Users' group
ds.AddAccessRule(new FileSystemAccessRule("S-1-5-32-545", FileSystemRights.FullControl, AccessControlType.Allow));
// 'Everyone' group
ds.AddAccessRule(new FileSystemAccessRule("S-1-1-0", FileSystemRights.FullControl, AccessControlType.Allow));
// set folder with correct user rights
DirectoryInfo di = new DirectoryInfo(folder);
di.SetAccessControl(ds);
}
}
The problem is that on this line:
DirectorySecurity ds = new DirectorySecurity();
Unity gives this exception:
PlatformNotSupportedException: This platform is not supported. System.Security.AccessControl.DirectorySecurity..ctor ()
Is this a Mono problem, or something to do with Unity?
I can't use PlayerPrefs because that is stored in the current user registry, so it doesn't support multi-user environments (i.e. data shared between them).
Or does anyone have any suggestions for alternative ways of handling shared data like this?
Thanks!
Sorry to raise this question after 4 years of no answers but Im having the same problem, I cant seem to use "DirectorySecurity" it gives "PlatformNotSupportedException" . Do we have to use "directory.localFolder" or "Environtment.CurrentDirectory" ? I am able to write a FileStream to a newly created folder but cant read from the same directory, any help ?
Hi, sorry to question you 4 years later, but have you found a solution to your issue ?
Your answer
