Imported Upstream version 4.6.0.125

Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2016-08-03 10:59:49 +00:00
parent a569aebcfd
commit e79aa3c0ed
17047 changed files with 3137615 additions and 392334 deletions

View File

@@ -62,7 +62,7 @@ namespace System.IO {
FullPath = Path.GetFullPath (path);
if (simpleOriginalPath)
OriginalPath = Path.GetFileName (path);
OriginalPath = Path.GetFileName (FullPath);
else
OriginalPath = path;
@@ -102,12 +102,13 @@ namespace System.IO {
public override bool Exists {
get {
Refresh (false);
if (_dataInitialised == -1)
Refresh ();
if (stat.Attributes == MonoIO.InvalidFileAttributes)
if (_data.fileAttributes == MonoIO.InvalidFileAttributes)
return false;
if ((stat.Attributes & FileAttributes.Directory) == 0)
if ((_data.fileAttributes & FileAttributes.Directory) == 0)
return false;
return true;
@@ -458,6 +459,19 @@ namespace System.IO {
}
}
internal void CheckPath (string path)
{
if (path == null)
throw new ArgumentNullException ("path");
if (path.Length == 0)
throw new ArgumentException ("An empty file name is not valid.");
if (path.IndexOfAny (Path.InvalidPathChars) != -1)
throw new ArgumentException ("Illegal characters in path.");
if (Environment.IsRunningOnWindows) {
int idx = path.IndexOf (':');
if (idx >= 0 && idx != 1)
throw new ArgumentException ("path");
}
}
}
}