2009-10-15 Sebastien Pouliot * UnmanagedMemoryStream.cs: Fix some and add missing validations 2009-09-23 Sebastien Pouliot * StreamReader.cs: Add back UTF32 under NET_2_1 (for smcs) 2009-09-23 Sebastien Pouliot * Directory.cs: Don't expose SearchOption in NET_2_1 * DirectoryInfo.cs: Don't expose SearchOption in NET_2_1 * MonoIO.cs: Don't throw a DriveNotFoundException under NET_2_1 - an IOExpection will be thrown (like the 1.x profile) 2009-09-22 Sebastien Pouliot * StreamReader.cs: Don't use UTF32 under NET_2_1 2009-09-18 Sebastien Pouliot * Directory.cs: Avoid imperative CAS checks and remove AccessControl types for NET_2_1 * DirectoryInfo.cs: Remove AccessControl types for NET_2_1 * File.cs: Remove AccessControl types for NET_2_1 * FileInfo.cs: Remove AccessControl types for NET_2_1 * FileStream.cs: Remove AccessControl types for NET_2_1 * Path.cs: Avoid imperative CAS checks for NET_2_1 2009-09-17 Gonzalo Paniagua Javier * DirectoryInfo.cs: throw if FullPath is not a directory. Fixes bug #539791. 2009-09-04 Zoltan Varga * UnmanagedMemoryAccessor.cs: New net 4.0 class. 2009-07-14 Gonzalo Paniagua Javier * Path.cs: only trim the end of the file. Fixes bug #521924. 2009-05-05 Miguel de Icaza * Contribution from David Uvalle that implements FileInfo.Replace. 2009-04-25 Miguel de Icaza * StreamReader.cs (DataAvailable): New internal function to work around the fact that StreamReaders are now blocking on Peek(), and that our own Console.TermInfoDriver used Peek() as a way of probing if there was data on a stream before to avoid blocking. o 2009-04-24 Gonzalo Paniagua Javier * StreamReader.cs: if Peek() needs to block, do it. Fixes bug #496905. 2009-03-22 Marek Habersack * FileStream.cs: implemented the SafeFileHandle property. 2009-02-24 Gonzalo Paniagua Javier * StringReader.cs: LF followed by CR is 2 lines. 2009-02-12 Gonzalo Paniagua Javier * MonoIO.cs: * MonoIOError.cs: enable ERROR_NOT_SAME_DEVICE. 2009-02-06 Gonzalo Paniagua Javier * StreamReader.cs: when a LF ends a decoded buffer and is not followed by a CR in the next decoded buffer, we didn't flush the string. Fixes bug #445326. 2009-01-08 Christian Prochnow * DriveInfo.cs: Added GetDiskFreeSpaceInternal to query drive size and free space. Added GetDriveTypeInternal to query type of drive. 2008-12-20 Miguel de Icaza * FileStream.cs: Found while debugging webcompare, we should add Obsoletes to the FileStream constructors that take IntPtrs. 2008-11-27 Sebastien Pouliot * FileInfo.cs: Change ToString (in 2.1) not to return the full path of the filename (since it's not SecurityCritical). 2008-11-09 William Holmes * TextReader.cs : Adding the NullTextReader as a private class to the TestReader class for the Null field of the TestReader. Code is contributed under MIT/X11 license. 2008-11-06 Jonathan Chambers * MonoIO.cs : Add DuplicateHandle. 2008-10-29 Gonzalo Paniagua Javier * Path.cs: clean the path when we're not in windows. Bug #321706 fixed. 2008-10-12 Zoltan Varga * BinaryReader.cs (Read7BitEncodedInt): Check for an invalid encoding. Fixes #434581. 2008-08-22 Sebastien Pouliot * FileStream.cs, MonoIO.cs: For Silverlight 2.0 (NET_2_1) we always throw IsolatedStorageException instead of FileNotFoundException and DirectoryNotFoundException. 2008-08-21 Sebastien Pouliot * FileStream.cs: Adjust exception being thrown for Silverlight 2.0. * FileSystemInfo.cs: In Silverlight 2 this type does not inherit from MarshalByRefObject nor does it implement ISerializable. * Stream.cs: In Silverlight 2 this type does not inherit from MarshalByRefObject. * TextReader.cs: In Silverlight 2 this type does not inherit from MarshalByRefObject. * TextWriter.cs: In Silverlight 2 this type does not inherit from MarshalByRefObject. * UnmanagedMemoryStream.cs: For Silverlight 2 add CLSCompliant(false) to the PositionPointer property. 2008-08-15 Gert Driesen * StreamWriter.cs: Change argument check for buffersize to require positive number. Removed duplicate disposed check for AutoFlush. Removed unnecessary initialization of bools. 2008-08-15 Gert Driesen * StreamWriter.cs: Removed duplicate argument checks from .ctor taking path, as these checks are already done in FileStream .ctor. Removed parameter name from ArgumentException to match MS. 2008-07-28 Marek Safar * File.cs: Delay DateTime .cctor invocation. 2008-07-04 Andreas Nahr * File.cs: Fix parameter name 2008-07-03 Andreas Nahr * TextWriter.cs: * StreamWriter.cs: * StreamReader.cs: * Stream.cs: * MemoryStream.cs: * File.cs: * DriveNotFoundException.cs: * Directory.cs: Fix parameter names 2008-06-30 Andreas Nahr * BinaryReader.cs: Fix parameter names * BinaryWriter.cs: Fix parameter names, fix exceptions * BufferedStream.cs: Fix parameter names * Directory.cs: Fix parameter names, fix exceptions, optimize == "" cases * DirectoryInfo.cs: * DirectoryNotFoundException.cs: * FileNotFoundException.cs: * FileStream.cs: Fix parameter names, fix exceptions * IOException.cs: Fix parameter names 2008-06-21 Gert Driesen * Path.cs: Fixed exception arguments to match MS. Removed obsolete LAMESPEC comment. In GetPathRoot, throw ArgumentException if path is whitespace-only. Throw ArgumentException in HasExtension, if path contains invalid path characters. 2008-05-29 Robert Jordan * Path.cs (InsecureGetFullPath): Call CanonicalizePath for UNC paths as well. * Path.cs (GetServerAndShare): New helper method. * Path.cs (SameRoot, CanonicalizePath): Add UNC support. Fixes #394681 and a bunch of TestGetFullPath unit test cases. All changes are Win32 related. 2008-05-14 Andreas Nahr * DriveInfo.cs: Fix compiler warning 2008-05-07 Sebastien Pouliot * CheckArgument.cs: Removed. Lots of unused code. The two methods used are now inlined into Path.cs * CheckPermission.cs: Removed. Lots of unused code. * Path.cs: Inlined two checks. [Found using Gendarme] 2008-04-18 Sebastien Pouliot * Path.cs: Change PathSeparatorChars from private to internal since it's needed for IsolatedStorage. 2008-04-17 Gert Driesen * DirectoryInfo.cs: Added new internal ctor, which takes a bool that indicates whether the original path should only container the last part of the directory. Moved logic for determining the Name and Parent to Initialize method, to allow it to be re-used on deserialization. Renamed argument names to fix corcompare issues. Added missing argument checks. * Directory.cs (CreateDirectoriesInternal): Use internal ctor for DirectoryInfo to ensure OriginalPath only contains last part of the directory. * File.cs: Removed redundant checks from Create. On 2.0 profile, pass FileOptions to FileStream. Removed redundant directory check from Delete and modified exceptions to more closely match MS. * FileInfo.cs: Added argument check to ctor to match MS. Added missing deserialization ctor. Modified argument checks in MoveTo, and removed redundant checks. Added missing argument checks in CopyTo. Code formatting. * FileSystemInfo.cs: Modified argument checks in CheckPath to more closely match MS. * MonoIO.cs: Added msg that does not disclose filename for ERROR_FILE_EXISTS. * Path.cs: Use String.Length instead of comparing with String.Empty. Removed exceptions argument names to match MS. 2008-04-16 Gert Driesen * File.cs: Changed argument names and thrown exception to better match .NET. Use String.Length instead of comparison with empty string. * DirectoryInfo.cs: Added missing deserialization ctor. 2008-04-04 Dick Porter * File.cs: Pretty up the file share exception with the path name. 2008-03-28 Sebastien Pouliot * Directory.cs: Exception differs when deleting a directory if it does not exists or if a file of the same name exists. Also don't include path in exception if Delete fails. 2008-03-20 Marek Safar * Path.cs (Combine): Call ToString to optimize concatenation. 2008-03-02 Gert Driesen * DriveInfo.cs: Removed debug code. 2008-02-15 Miguel de Icaza * UnmanagedMemoryStream.cs: Implement few missing pieces. 2008-02-10 Zoltan Varga * UnexceptionalStreamReader.cs (Read): Optimize this to avoid making a number of calls + creation of a string for each character read. 2008-02-03 Sebastien Pouliot * MemoryStream.cs: Remove unused code found by Gendarme. 2008-01-16 Zoltan Varga * BinaryReader.cs: Fix ReadCharBytes method to avoid non-linear behavior. Fixes #352184. 2007-12-28 Zoltan Varga * MemoryStream.cs: Fix crash if internalBuffer is null. Avoid calling unsafe icalls. Fixes #350860. 2007-11-21 Atsushi Enomoto * FileStream.cs : Close() does not exist in 2.0 (Stream does). Move GC.SuppressFinalize() to Dispose(true). 2007-11-12 Juraj Skripsky * Path.cs (GetRandomFileName): Return filenames containing only characters from the range [a..z0..9] as MS.NET does. 2007-11-02 Atsushi Enomoto * StreamReader.cs : Encoding.GetMaxCharCount() does not always return the maximum max char count for Decoder.GetChars() since it might contain pending buffer by flush. Fixed bug #338370. 2007-11-01 Miguel de Icaza * Path.cs (GetDirectoryName): The paths returned from this routine should be canonical, not just a substring. In addition to fixing this, it also fixes #324742. 2007-10-26 Atsushi Enomoto * BinaryReader.cs, BinaryWriter.cs : use unsafe encoding that has "" for replacement fallback. Binary serialization regression is fixed. 2007-09-06 Atsushi Enomoto * Stream.cs, BufferedStream.cs, MemoryStream.cs: in 2.0 override Dispose(bool) rather than Close(). Stream.Dispose() is virtual in 2.0. 2007-08-24 Gert Driesen * BinaryReader.cs: Fixed line endings. * FileStream.cs: Rename name argument to path. Spaces to tabs. 2007-08-20 William Holmes *File.cs: Add implementation for IO.File.Replace methods. *MonoIO.cs: Declared an internal call for ReplaceFile Code is contributed under MIT/X11 license. 2007-07-31 Dick Porter * MonoIO.cs: Fix formatting of 'access denied' exception when the path info isn't known. Fixes bug 82141. 2007-07-08 Gert Driesen * Directory.cs: Renamed Move arguments to match MS. Allow Move to be used to move files, patch by Robert Jordan. Fixes bug #81912. Spaces to tabs. 2007-06-21 Dick Porter * FileStream.cs: Fix FileShare test, fixing better bug 79250. 2007-05-28 Atsushi Enomoto * UnmanagedMemoryStream.cs : added Closed event for sys.Resources use. * IntPtrStream.cs : added internal get_BaseAddress(), for the same. 2007-05-25 Gert Driesen * UnmanagedMemoryStream.cs: In Read and ReadByte, use Marshal.ReadByte to read bytes as this allows us to start reading from the current position. In Read, return 0 when reading beyond the end of the stream and only read bytes until the end of the stream (not capacity). In ReadByte, return -1 when reading beyond the end of the stream. In SetLength: changed argument validation (and reported exceptions) to match MS, removed duplicate access check and changed the current position if length is less than position. In Write: throw NotSupportedException when attempting to write beyond capacity, use Marshal.WriteByte since that allows us to start writing from the current position. Adjust length when position moves beyond length in both Write and WriteByte. Allow position to be moved beyond capacity of stream. Fixed position using Seek (=+ typo). Changed CanRead to ignore current position. Allow Position to be used to move beyond capacity of stream. 2007-05-24 Gert Driesen * UnmanagedMemoryStream.cs: Changed argument names and exceptions (msg, params) to match MS. Verify access argument in ctor. 2007-05-23 Atsushi Enomoto * UnmanagedMemoryStream.cs : couple of bugfixes. in Read(), don't return buffer beyond the requested length. Fixed .ctor() for wrong capacity initialization. 2007-05-12 Jonathan Chambers * FileStream.cs: Implement SafeHandle constructors. 2007-05-01 Dick Porter * File.cs: * Stream.cs: Missed a few 2.0 methods 2007-04-30 Dick Porter * Directory.cs: * FileShare.cs: * DirectoryNotFoundException.cs: * SeekOrigin.cs: * FileAttributes.cs: * IOException.cs: * MemoryStream.cs: * FileMode.cs: * BinaryWriter.cs: * TextWriter.cs: * File.cs: * BinaryReader.cs: * TextReader.cs: * UnmanagedMemoryStream.cs: * StringWriter.cs: * FileAccess.cs: * FileLoadException.cs: * BufferedStream.cs: * Stream.cs: * FileInfo.cs: * FileStream.cs: * StringReader.cs: * StreamWriter.cs: * EndOfStreamException.cs: * DriveInfo.cs: * StreamReader.cs: * PathTooLongException.cs: * DriveType.cs: * FileNotFoundException.cs: 2.0 profile updates 2007-04-21 Alp Toker * FileStream.cs: Respect request for buffering in all cases. Gonzalo added code in r42667 that disables buffering even when it is requested, in the case that ftype != MonoFileType.Disk. This was killing performance for users who do Console.OpenStandardOutput(1024) but were ending up with a non-buffered FileStream. The new behaviour appears correct but we should watch for any regressions. 2007-04-05 Dick Porter * Directory.cs: Pass combined path and pattern to MonoIO.GetFileSystemEntries() 2007-04-03 Alp Toker * UnmanagedMemoryStream.cs: Should not have a public Dispose(). This behaviour is already provided by the base class. 2007-04-03 Alp Toker * Stream.cs: CreateWaitHandle() obsolete in 2.0. 2007-03-18 Alp Toker * UnmanagedMemoryStream.cs: * Directory.cs: Exception message typo fixes. 2007-03-11 Zoltan Varga * UnmanagedMemoryStream.cs: Fix a warning. 2007-03-05 Miguel de Icaza * Path.cs: Manually call FileStream and pass the new internal FileOptions.1 flag that means "This is a temporary file, use 600 permissions". * FileOptions.cs: Document the new private enum value. 2007-02-22 Dick Porter * MonoIOError.cs: * MonoIO.cs: Handle ERROR_CANNOT_MAKE. 2007-02-19 Eyal Alaluf * DirectoryInfo.cs, Directory.cs: Use MonoNotSupported & MonoLimitation attribute to tag that DirectorySecurity is not supported. 2007-02-19 Boris Kirzner * Path.cs: fix order of InvalidPathChars on windows. 2007-01-31 Gert Driesen * StreamReader.cs: Removed checks for non-existing directory or file, since these checks are also performed in FileStream. 2007-01-31 Gert Driesen * FileStream.cs: Always resolve to absolute paths for exceptions, when not in anonymous mode. 2007-01-24 Gonzalo Paniagua Javier * StreamReader.cs: fix for bug #75526. We return earlier from Read () if the underlying stream might block or end on the next read. 2007-01-22 Miguel de Icaza * DirectoryInfo.cs: Throw a better exception (accorind go the docs, UnauthorizedAccessException is thrown if the underlying platform does not support it and *also* if there are no permissions to access it, which is more convenient than the PlatformNotSupportedException that only states that it needs Win2k or newer). 2006-12-23 Alp Toker * Directory.cs: "platfor" typofix 2006-12-22 Sebastien Pouliot * File.cs: Add stubs for Encrypt and Decrypt that throws NotSupportedException just like non-NTFS file systems would with MS. Remove nested #if NET_2_0. * FileInfo.cs: Add stubs for Encrypt and Decrypt that throws NotSupportedException just like non-NTFS file systems would with MS. 2006-12-22 Atsushi Enomoto * Directory.cs : non NET_2_0 build fix. 2006-12-15 Miguel de Icaza * FileInfo.cs: Empty implementations for Encrypt and Decrypt Mon Dec 11 11:40:06 CET 2006 Paolo Molaro * FileStream.cs: correct exception message patch from Markus Mauhart . 2006-11-28 Duncan Mak * TextReader.cs (Dispose): Expose as public in NET_2_0. 2006-11-26 Miguel de Icaza * DriveInfo.cs, DriveType.cs: Add a couple of classes for CreativeDocs.Net. Thanks MoMA! http://www.mono-project.com/Moma 2006-11-16 Miguel de Icaza * DirectoryInfo.cs (GetFiles): Implement option with SearchOptions == AllDirectories 2006-11-13 Dick Porter * Directory.cs: Don't follow symlinks when deleting directories. Keeps bug 79733 fixed while fixing bug 79887. * MonoIO.cs: ExistsSymlink() added, which checks for FileAttributes.ReparsePoint. 2006-11-07 Dick Porter * Directory.cs: CreateDirectory() should only throw IOException in the 2.0 profile if a file already exists with the same name, not a directory. 2006-11-03 Jensen Somers * Directory.cs: CreateDirectory() should throw IOException if a file or directory with the same name already exists, in the 2.0 profile. Fixes bug 79806. 2006-10-30 Joel Reed * DirectoryInfo.cs: Implement SearchOption.AllDirectories option. 2006-10-11 Dick Porter * FileStream.cs: Cope with 2.0 FileShare.Delete values. Patch by Peter Dettman fixing bug 79250. 2006-09-21 Gonzalo Paniagua Javier * FileInfo.cs: added 2.0 IsReadOnly. Patch by Joel Reed. 2006-09-21 Gonzalo Paniagua Javier * FileInfo.cs: eol-style. 2006-09-19 Gert Driesen * FileNotFoundException.cs: Changed message for default ctor to match MS. Use internal message field of Exception to check whether Message is null. On 2.0 profile, use file/assembly load failure message when no message is set and a filename was specified. On 1.0 profile, always use file/assembly load failure message when no message is set (regardless of whether a filename was specified or not). Made some cosmetic changes to ToString to have it match MS. 2006-09-02 Zoltan Varga * BinaryReader.cs (Read): Avoid allocating memory when reading a char. 2006-08-30 Gonzalo Paniagua Javier * StreamReader.cs: avoid ArgumentOutRangeException when the underlying stream returns -1 on Read. 2006-08-30 Lluis Sanchez Gual * FileInfo.cs: OpenRead should open the file using the Read share mode. 2006-08-21 Sebastien Pouliot * Path.cs: Added internal method IsPathSubsetOf required to implement correctly FileIOPermission (better located here). 2006-08-03 Gonzalo Paniagua Javier * File.cs: (Delete) avoid creating the exception object for the 'file not found' case. 2006-07-24 Miguel de Icaza * FileShare.cs: Add Delete in 2.0 2006-07-06 Dick Porter * Directory.cs: When creating a directory treat ERROR_FILE_EXISTS (ie a file already exists with that name) the same as ERROR_ALREADY_EXISTS (ie a directory already exists with that name.) Keeps bug 50753 fixed when I fix the io-layer CreateDirectory() behaviour. 2006-06-21 Atsushi Enomoto * Directory.cs : implemented GetFiles() and GetDirectories() which takes SearchOption (as they are used in one of ruby.net stuff). 2006-06-06 Gonzalo Paniagua Javier * File.cs: never throw in Exists. 2006-05-18 Miguel de Icaza * Directory.cs (Exists): Ignore INVALID_HANDlE, return false. 2006-06-03 John Luke * Path.cs: fix typo in [Obsolete] message 2006-06-02 Gonzalo Paniagua Javier * BinaryReader.cs: use BlockCopyInternal. 2006-05-01 Daniel Drake * Directory.cs: Return false (as documented) on ERROR_ACCESS_DENIED in Exists() rather than throwing an exception. Bug #78239. 2006-04-29 Atsushi Enomoto * UnexceptionalStreamReader.cs (Read): Fix for #78218, where we consumed characters from the input even when the count was not set to zero, causing some characters to be missing in some circumstances. 2006-04-28 Gonzalo Paniagua Javier * Directory.cs: make sure the parent directory is not an empty string when a file name with no path is provided. Fixes bug #78209. Patch by Emery Conrad. 2006-04-28 Atsushi Enomoto * StreamReader.cs : implemented EndOfStream property. * File.cs : implemented AppendAllText(), WriteAllLines(), WriteAllBytes() and ReadAllLines(). Bug #77813 fixed. 2006-04-28 Robert Jordan * Path.cs (GetPathRoot): Return just the \\server\share part of a UNC. Fixes #78147. 2006-04-26 Miguel de Icaza * FileStream.cs: Implement the FileOptions usage by passing all the information to the C layer. Remove the "isAsync" argument for MonoIO.Open, and instead pass it on the FileOptions. * FileOptions.cs: Make it build when including WriteThrough * MonoIO.cs: Update MonoIO.Open signature to drop the async argument and take FileOptions instead. 2006-04-21 Zoltan Varga * FileStream.cs: Add new net 2.0 ctor. * FileOptions.cs: New file. 2006-03-21 Miguel de Icaza * Stream.cs: In 2.0 make Close call Dispose(true). 2006-03-21 Gonzalo Paniagua Javier * FileStream.cs: Seek() should flush the buffer, if any. Fixes bug #77863. 2006-03-07 Carlos Alberto Cortez * Stream.cs: Add 2.0 members to Stream.cs (CanTimeout, ReadTimeout and WriteTimeout). 2006-02-27 Gert Driesen * File.cs: In 2.0 profile, File.Get****Time(Utc) should not throw IOException if specified path does not exist. Fixes bug #77641. 2006-02-26 Gert Driesen * FileStream.cs: To match MSFT, ignore FileShare.Inheritable on 2.0 profile. This fixes bug #77644. Improved usefulness of some existing exception messages. 2006-02-22 Joerg Rosenkranz * MonoIO.cs, MonoIOError.cs: Verbose exception for error 39 (disk full). 2006-02-03 Zoltan Varga * Stream.cs FileStream.cs: Add new 2.0 Dispose () method and protected Dispose (bool) method. 2006-01-27 Gonzalo Paniagua Javier * TextWriter.cs: Dispose () is public in 2.0. 2006-01-20 Gonzalo Paniagua Javier * UnexceptionalStreamReader.cs: Read (char,int,int) should not return -1. Thanks to Jakob Berkman. 2006-01-20 Gonzalo Paniagua Javier * StreamReader.cs: (ReadToEnd) if Read returns -1 or 0, we're done. 2006-01-18 Atsushi Enomoto * Path.cs : (GetRandomFileName) use random buffer ;-) It somehow caused infinite loop on Windows. 2006-01-18 Atsushi Enomoto * DirectoryInfo.cs : on Windows top directory is something like c:\. 2006-01-17 Joshua Tauberer * StreamReader.cs: Avoid two totally unnecessary string creations. (kind of pedantic) 2006-01-13 Ben Maurer * TextWriter.cs: Call char[],int,int from the Write(char[]) method both for msft compat and for performance. Thanks to "Mike Glenn" for pointing. 2006-01-12 Ben Maurer * File.cs: Support for Read/WriteAllText 2006-01-11 Sebastien Pouliot * Path.cs: Previous fix caused regression of bug #76191. Fixed (again) 2006-01-09 Sebastien Pouliot * Path.cs: Fix c14n on Windows when the first separator after the root isn't '\'. Fix problems for XSP with 1.1.13. 2006-01-07 Miguel de Icaza * Path.cs (GetTempFilename): Append ".tmp" to the path, some external application expect this extension. 2006-01-05 Kornél Pál * DriveNotFoundException.cs: Added. * MonoIO.cs: Added ERROR_INVALID_DRIVE handling. Pass HResult to IOException constructors. * MonoIOError.cs: Expose ERROR_INVALID_DRIVE. 2006-01-02 Sebastien Pouliot * UnexceptionalStreamReader.cs: Re-implemented the Read method to fix the new line handling when reading from the Console (bug #77108). 2005-12-24 Kornél Pál * FileStream.cs: Set buf_start to actual initial position when creating FileStreams from handles. 2005-12-23 Sebastien Pouliot * DirectoryInfo.cs: Fixed #77090 to fix /home parent to be / (and not null). 2005-12-21 Sebastien Pouliot * Path.cs: Fixed #77058 where a Windows drive wasn't considered during path canonalization. 2005-12-20 Sebastien Pouliot * Path.cs: Fixed #77007 where a Windows drive is specified with a partial path. 2005-12-15 Sebastien Pouliot * DirectoryInfo.cs: Fixed #76903 where the Name property wasn't correct in some cases. Added special case for Windows drives. Reduced temporary allocations in Get* methods (removed ArrayList). Added some new 2.0 methods (partial). * MonoIO.cs: Removed InvalidPathChars icall as the return value is different from 1.x and 2.0. The values are now defined in Path.cs. * Path.cs: Fixed #76191 so that GetFullPath on a Windows drive returns the current directory (if it's on the specified drive). Fixed 2.0 API changes (e.g. static class). * SearchOption.cs: Added missing [Serializable] (2.0). 2005-12-07 Zoltan Varga * Directory.cs: Fix a warning. 2005-11-10 Dick Porter * DirectoryInfo.cs: Fix endless recursion problem with root directory on windows too. Fixes bug 76191. 2005-11-06 Zoltan Varga * Directory.cs: Add stub for net 2.0 GetFiles method. * SearchOption.cs: New file. 2005-10-20 Gonzalo Paniagua Javier * StreamReader.cs: made ReadLine() less memory-hungry. Fixes bug #76399. 2005-10-04 Gonzalo Paniagua Javier * MonoIO.cs: replace FindFirst/FindNext/FindClose with GetFileSystemEntries. * Directory.cs: simplify GetFileSystemEntries by using the new icall. 2005-10-01 Ben Maurer * BinaryReader.cs: The patch below had a nasty little bug with long strings that had non-ascii chars in it, because it was looking at the char count, not the byte count. 2005-09-11 Ben Maurer * BinaryReader.cs: An optimization for ReadString that had been approved/well tested for a while but never gotten in. Bug #52754. 2005-09-05 Miguel de Icaza * MonoIOError.cs: expose the ERROR_DIR_NOT_EMPTY as we are throwing it. * MonoIO.cs: Return a properly named error. 2005-08-23 Raja R Harinath Fix #75679. * StreamReader.cs (DiscardBufferedData): Reset the decoder too. 2005-07-25 Gonzalo Paniagua Javier * BinaryReader.cs: use Buffer.BlockCopy instead of Array.Copy when expanding the buffer. 2005-07-24 Gonzalo Paniagua Javier * Directory.cs: don't leak 'find' handles. 2005-07-05 Dick Porter * MonoIO.cs: * MonoIOError.cs: Add error message for ERROR_WRITE_FAULT. 2005-07-04 Sebastien Pouliot * DirectoryInfo.cs: Fixed recursion problem with root directory introduced when fixing bug #75443. 2005-07-02 Sebastien Pouliot * FileSystemInfo.cs: Fixed exception arguments. Added ComVisible for NET_2_0. * DirectoryInfo.cs: Fixed bug #75443 when the directory ends with a separator. Added ComVisible for NET_2_0. Normalized line endings. 2005-05-26 Miguel de Icaza * File.cs (ReadAllBytes): add. Tue May 17 10:54:18 CEST 2005 Paolo Molaro * FileStream.cs: complete fix for #74971. 2005-05-16 Gonzalo Paniagua Javier * FileStream.cs: make WriteByte work in all cases when no buffer is being used. Fixes bug #74971. 2005-05-06 Gonzalo Paniagua Javier * Directory.cs: if the pattern is just a file name and it exists, return it right away. Fixes bug #72143. 2005-05-06 Ben Maurer * File.cs (Open): If a stream is opened with Append access, you only want Write access. Fixes bug #71088. 2005-04-21 Gonzalo Paniagua Javier * UnexceptionalStreamWriter.cs: don't throw anything on Flush. Closes bug #74190. 2005-04-13 Gonzalo Paniagua Javier * Path.cs: don't trim the path in CanonicalizePath on non-windows systems. Fixes bug #53173. 2005-04-09 Miguel de Icaza * StreamWriter.cs (Initialize): Avoid echoing the preamble to a file if the position of the stream is not at the beginning. Fixes bug #74513 2005-04-07 Gonzalo Paniagua Javier * FileStream.cs: * MonoIO.cs: remove dead code related to async IO. 2005-03-24 Sebastien Pouliot * Directory.cs: Added a Demand for Read/Write when creating a new directory. * FileSystemInfo.cs: Added an InheritanceDemand for Unrestricted on the class. * Path.cs: Added a Demand for PathDiscovery in GetFullPath method. Added an Assert for unrestricted file access to GetTempFilename as the method must create the (zero-length) file and can be called from partially trusted code. Added a Demand for unrestricted environment access to GetTempPath method. * FileStream.cs: Added a Demand for UnmanagedCode for all constructors accepting a file handle. Added LinkDemand and InheritanceDemand for UnmanagedCode to get Handle and SafeFileHandle (2.0) properties. 2005-03-16 Lluis Sanchez Gual * BinaryReader.cs, BinaryWriter.cs: Read/write dobules, floats and decimals in little endian format. 2005-03-17 Gonzalo Paniagua Javier * MonoIO.cs: * MonoIOError.cs: handle ERROR_LOCK_VIOLATION. 2005-03-15 Sebastien Pouliot * FileStream.cs: Anonymize part of the path when exceptions are throw by a FileStream is used for isolated storage. Throw a DirectoryNotFound Exception for any FileMode not just CreateNew (see new unit tests). 2005-03-09 Dick Porter * MonoIOError.cs: * MonoIO.cs: Add a few more exception messages 2005-02-11 Zoltan Varga * CheckPermission.cs: Fix warning. 2005-02-06 Gonzalo Paniagua Javier * File.cs: Exists does not throw when there are invalid characters in the file name. * MonoIOError.cs: uncommented INVALID_NAME. Patch by Gert Driesen. 2005-01-31 Sebastien Pouliot * FileStream.cs: Added new constructor to allow anonymous files (i.e. when Name property is "[Unknown]") for IsolatedStorage. Added SafeFileHandle property and a reference to Microsoft.Win32.SafeHandles for the NET_2_0 profile. 2005-01-28 Sebastien Pouliot * FileNotFoundException.cs, FileLoadException.cs: Fixed bad "if ();". 2005-01-27 Sebastien Pouliot * FileNotFoundException.cs, FileLoadException.cs: Protect the fusion (GAC) log from being disclosed unless code has ControlPolicy and ControlEvidence. Added missing HResult value. Fixed Message property to match MS results. Changed ToString to use a StringBuilder. 2005-01-24 Sebastien Pouliot * Directory.cs: Added CAS security to Get|SetCurrentDirectory to complete Environment security checks. 2004-12-21 Gonzalo Paniagua Javier * BufferedStream.cs: use Buffer.BlockCopyInternal instead of Array.Copy. 2004-12-13 Gonzalo Paniagua Javier * File.cs: delegate to the runtime the task of checking for destination file existence in Move. 2004-12-11 Ben Maurer * BinaryReader.cs (ReadByte): Check for exceptions here. 2004-12-06 Atsushi Enomoto * TextWriter.cs : create CoreNewLine in another .ctor(). 2004-12-05 Ben Maurer * TextWriter.cs (WriteLine): Use CoreNewLine so that this does not make a string out of the array every time it is called. Thanks to Atsushi for the idea. 2004-12-04 Ben Maurer * DirectoryInfo.cs (CreateSubDirectory): Check the input here. * FileSystemInfo.cs (CheckPath): Empty paths are invalid. 2004-11-19 Dick Porter * MonoIOError.cs: * MonoIO.cs: Add a proper message for sharing violation 2004-11-01 Ben Maurer * MonoIOError.cs: All of these fields just take up room in corlib, bloating things up. To make it worse, we need to malloc data at runtime about them. Since most are not used, am commenting them out 2004-09-19 Dick Porter * UnexceptionalStreamWriter.cs: * UnexceptionalStreamReader.cs: Wrappers around StreamWriter and StreamReader that catch IOException. Used by System.Console so that graphical applications dont get IO errors when their stdin/out/err vanishes (ie when they spew debug output.) 2004-09-12 Ben Maurer * BinaryReader.cs: Use ReadByte when possible. Gives a tad of perf, and fixes a bug reported on mono-patches-list 2004-09-08 Miguel de Icaza * File.cs: Added Gettextification, provide a better error message for #62112 2004-09-08 Marek Safar * Directory.cs, * File.cs: Class is static for NET_2_0. 2004-09-06 Ben Maurer * MemoryStream.cs (SetLength): Use Array.Clear here 2004-09-05 Ben Maurer * Path.cs (Combine): Array.IndexOf is slow (because of the special cases it must handle). So, rather than doing IndexOf just check each type of seperator. 2004-09-05 Ben Maurer * StringReader.cs (StreamReader): remove sourceChars and disposed variables (Read): Copy directly from the string, rather than a char [] (Dispose, CheckObjectDisposedException): the flag for being disposed is now source == null. 2004-09-04 Gonzalo Paniagua Javier * Stream.cs: Close() does not call Flush(). Fixes bug #65340. 2004-08-26 Ben Maurer * StreamWriter.cs: avoid String.ToCharArray for perf. 2004-08-18 Dick Porter * StreamWriter.cs: Flush the buffer if AutoFlush is set to true. Fixes bug 63063, patch by Laurent Debacker (debackerl@yahoo.com). 2004-08-13 Dick Porter * StreamWriter.cs: Allow FileShare.Read access to the underlying FileStream, to be compatible with MS. Fixes bug 62152. 2004-07-06 Dick Porter * MonoIO.cs: Add ERROR_INVALID_PARAMETER to the exception list. Don't blow away the SetFileTime() error before the caller gets to see it. Part of the bug fix to 60970. 2004-07-05 Dick Porter * CheckPermission.cs: * File.cs: * FileInfo.cs: * MonoIO.cs: * FileStream.cs: Give the filename when throwing FileNotFoundException. Fixes bug 61120, based on patch from Carlos Alberto Cesario . 2004-07-05 Dick Porter * File.cs: File.Move() should check that the destination doesn't already exist. Fixes bug 60915, patch based on one from Carlos Alberto Cesario . 2004-06-24 Gonzalo Paniagua Javier * Directory.cs: implemented GetLogicalDrives. 2004-06-24 Lluis Sanchez Gual * StreamReader.cs: In DiscardBufferedData(), reset the mayBlock flag. 2004-06-21 Atsushi Enomoto * FileStream.cs : .ctor() should block write access when created with FileAccess.Write. 2004-06-21 Atsushi Enomoto * FileStream.cs : Check buffer size before creating file. * StreamReader.cs : Check encoding!=null before creating file. * File.cs, MonoIO.cs : Convert DateTime to FileTime after checking file IO sharing violation (it just fixes the type of exception). 2004-06-15 Gert Driesen * MemoryStream.cs: added TODO for serialization * StringWriter.cs: added TODO for serialization 2004-06-15 Gert Driesen * TextWriter.cs: fixed CoreNewLine to return char[] 2004-06-14 Dick Porter * Directory.cs: * File.cs: Catch PATH_NOT_FOUND errors in Exists() too. Fixes bug 59354. 2004-06-09 Duncan Mak * BufferedStream.cs (SetLength): Add checks and throw the appropriate Exceptions here instead. * FileStream.cs (SetLength): Revert part of my last patch, we're throwing ObjectDisposedException instead of IOException again. 2004-06-09 Gonzalo Paniagua Javier * FileStream.cs: re-enabled ignoring broken pipe errors when reading. Fixes bug #59639. 2004-06-08 Duncan Mak * Directory.cs (IsRootDirectory): New helper method for determining if a path is the root directory. Handles both Unix as well as Windows. (GetParent): Use IsRootDirectory for the check. 2004-06-08 Duncan Mak * File.cs: Fix line endings, took out ^Ms. * Directory.cs (GetParent): Return null if the specified path is the root directory. * StreamReader.cs (StreamReader): (Initialize): Add a check that buffer_size must not be less than or equal to zero. 2004-06-07 Duncan Mak * FileStream.cs (SetLength): The other exceptions have precendence over ObjectDisposedException, which is not one of the exceptions listed in the documentation). Also, instead of throwing an ObjectDisposedException, throw an IOException. 2004-06-03 Gonzalo Paniagua Javier * BufferedStream.cs: fixed typo that prevented Read() from working. This went out with beta 2. Closes bug #59534. 2004-05-31 Atsushi Enomoto * Directory.cs, File.cs : Fixed Exists() that raised DirectoryNotFoundException. Quick fix for bug #59354. 2004-05-30 Sebastien Pouliot * BinaryReader.cs: Added missing disposed check for most methods. Reordered some exceptions to match MS implementation. * BufferedStream.cs: Fixed Seek logic (check for CanSeek and dispose). SetLength must also reset Position and check for dispose. * FileStream.cs: Added missing check for invalid SeekOrigin. Added missing validations. 2004-05-27 Dick Porter * FileSystemInfo.cs: Take out the error checking in Refresh(), it broke other stuff 2004-05-27 Dick Porter * MonoIO.cs: Define icalls for Lock() and Unlock() * FileStream.cs: Implement Lock() and Unlock(). Also improve IO error reporting. * FileSystemInfo.cs: * File.cs: * Directory.cs: Improve IO error reporting 2004-05-27 Gonzalo Paniagua Javier * FileStream.cs: delay seeking to the end when FileMode.Append is specified until after buffer initialization. Fixes bug #59151. 2004-05-26 Sebastien Pouliot * BufferedStream.cs: Added globalization and fixed exceptions and possible integer overflow. * FileStream.cs: Fixed possible integer overflow. * MemoryStream.cs: Fixed possible integer overflow. * StringReader.cs: Fixed possible integer overflow. * TextWriter.cs: Fixed possible integer overflow. 2004-05-26 Atsushi Enomoto * FileInfo.cs, DirectoryInfo.cs : ToString() should return constructor arg as is. This fixes bug #58804. 2004-05-25 Gonzalo Paniagua Javier * Directory.cs: ERROR_FILE_NOT_FOUND in FindFirstFile means there are no files, but the directory was found. Fixes bug #58875. 2004-05-24 Duncan Mak * StreamWriter.cs (Close): Remember to set the 'closed' flag. * DirectoryInfo.cs: * FileInfo.cs: Reformat the whole file to use DOS line endings. (MoveTo): Return if the destination of Move is the same as the file's current location. 2004-05-24 Sebastien Pouliot * MemoryStream.cs: Fixed exception reporting to match MS Fx. Fixed the condition to allow zeroization of existing data when we shrink the stream. * StreamReader.cs: Add checks for null encoding. Fixed possible integer overflow and ArgumentNullException in Read. * StreamWriter.cs: Add dispose check to Write(char) and Write(char[]), AutoFlush. Fixed possible integer overflow in Write(char[],int,int). * StringWriter.cs: Fixed possible integer overflow in Write. Changed spaces for tabs. 2004-05-22 Duncan Mak * Directory.cs: Reformat the whole file to use Unix line endings for consistency. (GetFileSystemEntries): If pattern is String.Empty, always return an empty string array. Throw the ArgumentException if path is an empty string (determined using the new helper method) (IsEmptyString): Returns true on an empty string or a string with only whitespace characters. * Path.cs (GetPathRoot): Throw an ArgumentException if the path argument is String.Empty. 2004-05-20 Jackson Harper * DirectoryInfo.cs: Create subdirectories correctly if more then one is supplied. 2004-05-16 Atsushi Enomoto * DirectoryInfo.cs: Fixed ToString() as well as FileInfo. 2004-05-16 Atsushi Enomoto * FileInfo.cs: ToString() returns not full path but just the file name. 2004-05-14 Marek Safar * TextWriter.cs: Removed useless [CLSCompliant (false)] 2004-05-06 Gonzalo Paniagua Javier * Directory.cs: use the real wildcard for file names as it is supported now in io-layer. SearhPattern is not needed now. 2004-04-30 Ben Maurer * BinaryWriter.cs, Stream.cs: ensure we have beforefieldinit. 2004-04-29 Ben Maurer * Path.cs: readonlyificate. 2004-04-29 Ben Maurer * FileStream.cs: constify. 2004-04-27 Andreas Nahr * SearchPattern.cs: Call invariant String.ToLower 2004-04-24 Gonzalo Paniagua Javier * FileStreamAsyncResult.cs: invoke the callback if set as completed before the asynchronous stuff jumps in. 2004-04-16 Gonzalo Paniagua Javier * FileStream.cs: only pass the async flag set to true when opening the file and AIO is supported by the underlying system. Fixes bug #56883. 2004-04-12 Gert Driesen (drieseng@users.sourceforge.net) * FileSystemInfo.cs: Implemented ISerializable, corrected COM visibility of UTC properties 2004-04-01 Lluis Sanchez Gual * BufferedStream.cs: On Position change, do not reset the buffer if the new position is in the limits of the buffer. This fixes #49403. 2003-04-03 Atsushi Enomoto * Path.cs : ChangeExtension() does not remove dot(.) when extension is an empty string. 2004-04-01 Lluis Sanchez Gual * FileSystemInfo.cs: Added InternalRefresh, a virtual method that derived classes can override to perform class specific refreshing. * FileInfo.cs: Refresh existence flag when Refresh is called. * TextWriter.cs: Applied patch by Benjamin Jemlich for bug #52512. The method Write(char) should do nothing by default. 2004-03-31 Gonzalo Paniagua Javier * BinaryReader.cs: don't modify the underlying stream in Peek(). Fixes bug #51741. Patch by Nick Vaughan. 2004-03-25 Lluis Sanchez Gual * FileStream.cs: ReadByte(): when buffering is disabled, read the byte with a direct call to ReadData. In InitBuffer(), if buffering is disabled, create a buffer of one byte, to be used in ReadByte. This fixes bug #52361. 2004-03-25 Lluis Sanchez Gual * Path.cs: In GetDirectoryName, fixed check for volumeSeparator. This fixes bug #53892. 2004-03-24 Lluis Sanchez Gual * File.cs: In Move, throw IOException instead of ArgumentException if destination is a directory. * MonoIO.cs: In ExistsDirectory, return ERROR_PATH_NOT_FOUND instead of ERROR_FILE_NOT_FOUND, since we are looking for a directory, not a file. 2004-03-15 Andreas Nahr * StreamWriter.cs: Removed unneeded function 2004-03-15 Gonzalo Paniagua Javier * FileStream.cs: added support for asynchronous I/O without using the OS native libraries if available. * FileStreamAsyncResult.cs: IAsyncResult for asynch. I/O. * MonoIO.cs: added BeginRead/Write, GetSupportsAsync. Open has now a new parameter to tell ifthe file will be used for asynch operations. * Stream.cs: BeginRead/Write do not use delegates. They just are actually synchronous. * StreamAsyncResult.cs: IAsyncResult for Stream. 2004-03-04 Gonzalo Paniagua Javier * Directory.cs: check if the error returned in Exists is different from 'path not found' and throw the appropiate exception in that case. See #55160. 2004-03-02 Gonzalo Paniagua Javier * MonoIO.cs: added case for ERROR_FILENAME_EXCED_RANGE. 2004-02-25 Jackson Harper * File.cs: Report the filename when deleting a file fails. Patch by Gert Driesen. Fixes bug #54855. 2004-02-24 Gonzalo Paniagua Javier * FileStream.cs: remove dangling ^Ms. 2004-02-19 Gonzalo Paniagua Javier * FileStream.cs: (.ctor) Path.DirectoryName can be empty and make Path.GetFullPath crash. Fixed it. * MonoIO.cs: fixed typo. 2004-02-13 Jackson Harper * FileStream.cs: Throw some more exceptions for invalid params. Fixes some unit test failures. * BufferedStream.cs: If the stream is closed (can't read from it or write to it) throw an ObjectDisposedException. Tue Jan 20 23:10:22 CET 2004 Paolo Molaro * StreamWriter.cs, TextWriter.cs: comply with the documented behaviour and use a decode buffer to improve performance. 2004-01-20 Gonzalo Paniagua Javier * Path.cs: now Path.GetFullPath ("/") returns "/" instead of "". 2004-01-20 Gonzalo Paniagua Javier * Path.cs: add the trailing directory separator only for volumes. Fixes bug #53035. 2004-01-19 Zoltan Varga * IntPtrStream.cs: Fix build bustage. * IntPtrStream.cs: Add a 'Closed' event. Also throw exceptions after the stream is closed. 2004-01-18 Ben Maurer * FileStream.cs: Locking from bug #32344 removed. This is not necessary because the correct fix was actually in the console. This fixes bug #53026. Miguel de Icaza reviewed/approved this patch. 2004-01-14 Zoltan Varga * FileStream.cs (.ctor): Avoid allocating a large buffer when reading from small files. 2004-01-10 Atsushi Enomoto * Path.cs : GetDirectoryName ("c:\readme.txt") should return "c:\" instead of "c:" . This fixed bug #52735. 2004-01-04 Nick Drochak * Path.cs: Remove defined but unused variable, and also got rid of some unreachable code. Eliminates some build warnings. 2003-12-28 Ben Maurer * BinaryWriter.cs: use one encoding buffer for writing strings rather than allocting one/string. HUGE perf boost when writing many strings. 2003-12-25 Atsushi Enomoto * Path.cs : Fixed GetFullPath() (and CanonicalizePath()), HasExtension(), GetPathRoot() and IsPathRooted() to fit with tests. 2003-12-22 Bernie Solomon * FileStream.cs: (.ctor) do not set handle in object until after it is validated via GetFileType so finalizer doesn't see bad handles and initialize this.handle to InvalidHandle 2003-12-19 Bernie Solomon * MonoIO.cs: SetFileTime() Failed Open returns InvalidHandle not Zero 2003-12-17 Atsushi Enomoto * Directory.cs : SetCurrentDirectory() should raise errors for some kind of arguments. 2003-12-12 Gonzalo Paniagua Javier * Path.cs: GetTempPath () ends with DirectorySeparatorChar. Fixes bug #52056. 2003-12-06 Ravindra *MonoIO.cs: Added a new exception case. It is thrown when a directory creation is attempted with a name that is already used by an existing file. 2003-11-28 Dick Porter * Path.cs: Use the char form of LastIndexOf, so that the comparison is done with the Invariant culture. 2003-11-24 Gonzalo Paniagua Javier * Directory.cs: provide the path when getting the IOException. 2003-11-18 John Luke * CheckArgument.cs: (PathLength): fix recursion found by JonK 2003-11-15 Gonzalo Paniagua Javier * Directory.cs: (GetCurrentDirectory): (SetCurrentDirectory): moved here from Environment. Handle error cases. * MonoIO.cs: add path to the default error message. 2003-11-15 Gonzalo Paniagua Javier * StringReader.cs: fixed ReadLine for some cases where there are mixed '\r' and '\n'. Closes bug #51020. 2003-11-14 Ben Maurer * MemoryStream.cs (.ctor): We need to check if buffer is null before we get the Length of it. 2003-11-14 Miguel de Icaza * StreamReader.cs, TextReader, StreamReader (Read): Add [Out] 2003-11-14 Gonzalo Paniagua Javier * Directory.cs: allow directory names without wildcards in the pattern. Fixes bug #3 50969. * SearchPattern.cs: made InvalidChars and WildcardChars internal. 2003-11-14 Gonzalo Paniagua Javier * FileStream.cs: use the argument name when throwing exception. * StreamReader.cs: * StringReader.cs: * TextReader.cs: added [In] attribute for the array in Read. 2003-11-12 Gonzalo Paniagua Javier * DirectoryInfo.cs: fixed ToString. Closes bug #50842. 2003-11-12 Miguel de Icaza * Directory.cs: Adjust for missing PlatformID.Unix. 2003-10-28 Miguel de Icaza * StreamReader.cs: Add checks for disposed stream from bug report #48696 (Patrik Reali) * TextReader.cs (Read): Return the total number of bytes read, patch from Patrik Realli. 2003-10-20 Miguel de Icaza * FileStream.cs public FileStream (string name, FileMode mode) constructor: If we pass FileMode.Append, we can not pass FileAccess.ReadWrite. This fixes bug 44959 2003-09-26 Miguel de Icaza * BufferedStream.cs (Write): Use CanWrite in Write. Patch from Francisco Figueiredo Jr. 2003-09-19 Gonzalo Paniagua Javier * BinaryReader.cs: return the correct number of bytes read when there are some bytes from peeking. 2003-09-11 Lluis Sanchez Gual * BufferedStream.cs, FileStream.cs, MemoryStream.cs, Stream.cs: Added [In,Out] attributes to Read method. 2003-08-05 Martin Baulig * StreamReader.cs (DiscardBufferedData): Do the same like on the ms runtime: just discard the buffered data, but don't modify the BaseStream.Position. 2003-08-04 Martin Baulig * StreamReader.cs (DiscardBufferedData): Implemented. 2003-07-29 Miguel de Icaza * IntPtrStream.cs (Read): Use correct offset here; Change the code to use a byte* instead of an IntPtr to reduce the number of casts used. (Read): Use Marshal.Copy instead of the now deprecated MemCopy. (IntPtrStream): New stream implementation, it maps to a region in memory. 2003-07-23 Duncan Mak * StreamReader.cs (Initialize): This method is not exposed in the API, mark as internal. Fri Jul 18 14:42:42 CEST 2003 Paolo Molaro * MonoIO.cs: 64bit fix from Bernie Solomon . 2003-07-16 Dick Porter * FileInfo.cs: Update path info when a file is moved. Patch by John Luke , fixes bug 44253. 2003-07-10 Gonzalo Paniagua Javier * MemoryStream.cs: fixed bug #46060. Thanks to Carlos Barcenilla. 2003-06-30 Zoltan Varga * FileStream.cs (Dispose): Flush the buffer even if we don't own the handle. * FileStream.cs: Add a new constructor parameter to turn off buffering. This is used by the Console.OpenStandard...() methods. Also fix argument checking in InitBuffer(), so a zero buffer size is also rejected. 2003-06-27 Dietmar Maurer * Stream.cs: use async.delegate invoke 2003-06-18 Nick Drochak * FileSystemInfo.cs: Refresh cache when changeing file times. 2003-06-11 Zoltan Varga * FileStream.cs: Fix errors in previous checkins: (Write): Only take the shortcut route if the data is longer than the buffer length. (Write): Flush the buffer before writing out the new data (Write): Flush the buffer after writing out a segment since otherwise we will go into an infinite loop. (FlushBuffer): Remove my last change since it was clearly wrong. (Seek): Run FlushBuffer () after the in-buffer seek optimization. (Seek): Only use the in-buffer optimization if the buffer is not empty. (Length): Call FlushBuffer () since buffer data might change the size of the stream. 2003-06-09 Ville Palo * FileStream.cs: - removed unusefull bugfix (DirectoryNotFoundException) - Flush before seek. 2003-06-09 Ville Palo * FileStream.cs: Check buffer size before append/read -exceptios 2003-06-09 Ville Palo * FileStream.cs: Check DirectoryNotFound before FileNotFound. 2003-06-09 Ville Palo * FileStream.cs: Does not anymore flush while writing 2003-06-02 Nick Drochak * FileInfo.cs (MoveTo): Throw exceptions when dest exists, and check for null too. 2003-05-27 Lluis Sanchez Gual * BinaryReader.cs: Stream don't need to be seekable to use PeekChar. 2003-05-23 Gonzalo Paniagua Javier * Path.cs: fixed bug #42631. 2003-05-22 Zoltan Varga * File.cs (Move): Allow moving of directories. Fix 'destination is a directory' test. 2003-05-21 Ben Maurer * StringWriter.cs: Fixed bug #43431: "StringWriter .ctor(CultureInfo) does not create a new StringBuilder ()" 2003-05-11 Zoltan Varga * FileStream.cs (FlushBuffer): After a flush, the buffer is advanced by buf_offset bytes, not buf_length bytes. 2003-05-16 Dick Porter * MonoIO.cs: Implement GetTempPath 2003-05-14 Gonzalo Paniagua Javier * DirectoryInfo.cs: fixed bug #42991. * Path.cs: (CanonicalizePath): store the value of the trimmed input string. Make it work with paths such as "/home/xxx/.". 2003-05-08 Ben Maurer * Path.cs (CanonicalizePath) Fixed bug #42631, which duplicated the root part of the path under Windows. 2003-05-08 Ville Palo * FileSystemInfo.cs: Added 1.1 properties LastAccessTimeUtc, LastWriteTimeUtc and CreationTimeUtc 2003-05-07 Ben Maurer * Path.cs (GetPathRoot) Added support for UNC paths. (CanonicalizePath) Added optimizations per Miguel's requests. 2003-05-06 Ville Palo * BufferedStream.cs: - Removed unusefull code. - Added ObjectDisposedException to Position - Dont flush if stream is allready closed. - Flush throws also ObjectDisposedException. * Directory.cs: - GetFileSystemEtries: ArgumentNullException if pattern is null * DirectoryInfo.cs: Fixed little MoveTo () bug. * FileInfo.cs: - Exists: If file does not exists when instance is created the value of the Exists property does not change even if file is created afterwards. - Delete: If path is a directory UnauthorizedException is thrown. - CopyTo: Now we can overwrite file if wanted. * Path.cs: - GetFullPath: Now throws exception when path is " ". 2003-05-04 Ben Maurer * Directory.cs (GetLogicalDrives) Marked as MonoTODO because we need to implement the method on Windows. * Path.cs (CanonicalizePath) Added new function to get rid of . and .. in path names. Need to figure out what other functions should call this. (GetFullPath) Added call to the above function. 2003-05-04 Gonzalo Paniagua Javier * StreamReader.cs: (.ctor): fixed parameters passed to FileNotFoundException. 2003-04-25 Dietmar Maurer * BinaryReader.cs (Read): make sure the buffer is big enough (fix bug # 40702) 2003-04-24 Pedro Martinez Julia * BufferedStream.cs: Test if it's possible to seek in a Stream before access to Position. This prevents the exception thrown when the stream is System.Net.Sockets.NetworkStream. 2003-04-22 Ville Palo * Directory.cs: clean up --> performance improvment. Some exceptions are now checked in File.cs. * File.cs: Implemented Get/SetXXXTimeUtc () methods. Some bugfixes. 2003-04-21 Ville Palo * Directory.cs: lots of fixes. - Added GetXXXtimeUtc () (v1.1) methods. - Added SetXXXtimeUtc () (v1.1) methods. 2003-04-20 Igor Nosyryev * StringReader.cs (Read): Increment nextChar by charsToRead instead of count, that will guarantee that the next time the method is called, it will return 0 on an empty string rather than throwing an exception 2003-04-19 Ville Palo * BufferedStream.cs: Some fixes, mostly throwing exceptions. * MemoryStream.cs: Changed the order of exception checking * StringReader.cs: little clean up 2003-04-14 Ville Palo * BinaryWriter.cs: Fixed decimal writing and lots of ObjectDisposedExceptions added. 2003-04-13 Ville Palo * BinaryReader.cs: Fix to ReadDecimal() method. 2003-04-13 Ville Palo * StringReader.cs: Added some ObjectDisposedExceptions. * StringWriter.cs: Added some ObjectDisposedExceptions. * BinaryReader.cs: Added some ObjectDisposedExceptions. 2003-04-13 Gonzalo Paniagua Javier * FileStream.cs: fixed the windows build. This is an mcs bug. I'll fill a bug report. 2003-04-12 Gonzalo Paniagua Javier * FileStream.cs: fixed bug #40182 and made more unit test pass. 2003-04-11 Ville Palo * FileStream.cs: Added new methods Lock () and Unlock () 2003-04-11 Ville Palo * StringReader.cs: Throws exceptions if constructor parameter is null. 2003-04-11 Ville Palo * StringWriter.cs: Now throws an exception if StringBuilder parameter is null 2003-04-05 Miguel de Icaza * TextWriter.cs: Implemented Synchronized method. * TextReader.cs: Implemented Synchronized method. 2003-04-04 Miguel de Icaza * FileStream.cs (Read, ReadByte, Seek): throw ObjectDisposedException if the handle has been released. (Read): Throw exceptions specified in the spec. (Read, Write, ReadSegment, WriteSegment): There is no requirement for any instance methods of FileStream to be thread safe, so remove all the calls to lock on the object 2003-03-31 Nick Drochak * Path.cs (GetDirectoryName): Throw proper execption when path is empty. 2003-03-20 Lluis Sanchez Gual * FileNotFoundException.cs: fixed serialization bug. 2003-03-18 Atsushi Enomoto * StringWriter.cs : don't release internalString on Dispose(). 2003-03-07 Gonzalo Paniagua Javier * StreamReader.cs: fixed bug #39280. 2003-03-07 Gonzalo Paniagua Javier * Directory.cs: readded mkdir -p behavior. Thanks to kiwnix for pointing it out. 2003-03-05 Gonzalo Paniagua Javier * MemoryStream.cs: general fixes and reformatted. Passes all tests in the new MemoryStreamTest. 2003-03-05 Gonzalo Paniagua Javier * MemoryStream.cs: undo my bogus fix in ToArray. Allow GetBuffer and ToArray even after closing the stream. 2003-03-03 Gonzalo Paniagua Javier * Directory.cs: (Move): don't use File.Move. * DirectoryInfo.cs: fixed Name property. Fixes bug #37755. 2003-03-02 Gonzalo Paniagua Javier * DirectoryInfo.cs: changed ToString to match MS behavior. * Path.cs: further fixes to GetDirectoryName to return null in the same cases that MS does. Fixes bug #38387. 2003-03-02 Gonzalo Paniagua Javier * Path.cs: fixed a couple of bugs reported in #35906. 2003-03-01 Gonzalo Paniagua Javier * Directory.cs: fixed bugs #38939 and #38940. No need for separate unix/windows/unc shares code paths. 2003-02-27 Gonzalo Paniagua Javier * File.cs: fix by Elan Feingold for SetCreationTime, SetLastAccessTime and SetLastWriteTime. 2003-02-26 Gonzalo Paniagua Javier * MemoryStream.cs: (ToArray): return only the portion of the buffer that contains data, not the whole buffer. (note: this makes XmlDocument.Load work again with documents that have a * File.cs (GetCreationTime): Throw proper execption when path is not found. Tue Feb 25 11:55:35 CET 2003 Paolo Molaro * MemoryStream.cs: make it behave sanely when the stream is incrementally expanded. 2003-02-21 Dick Porter * FileStream.cs: Use locks around buffer manipulations. Fixes bug 32344 2003-02-18 Dick Porter * FileStream.cs: Make FileMode.Append work, and check for Seeking back over old data (undocumented ms behaviour, throws an exception if you try). Fixes bug 35975. 2003-02-17 Dick Porter * FileStream.cs: Don't close the handle if the stream doesn't own it. Patch from Raymond Penners (raymond@dotsphinx.com), bug 35623. 2003-02-14 Zoltan Varga * FileStream.cs (Write): flush after writing the last segment as well. 2003-02-11 Gonzalo Paniagua Javier * StringReader.cs: (ReadLine): fixed the case when the string ends with a '\n'. 2003-02-03 Gonzalo Paniagua Javier * MemoryStream.cs: create the buffer of the specified capacity. 2003-01-31 Patrik Torstensson * MemoryStream.cs: use BlockCopyInternal instead of Array.Copy, this is the same way as MS does it (performance improvement) 2003-01-29 Zoltan Varga * Directory.cs (GetFileSystemEntries): moved error handling to the correct instance of GetFileSystemEntries so all callers can enjoy it. 2003-01-28 Zoltan Varga * File.cs: add error handling to Get...Time methods. 2003-01-26 Zoltan Varga * Directory.cs: fix GetParent so it actually works. 2003-01-24 Gonzalo Paniagua Javier * Path.cs: fixlet to ChangeExtension for the case when the path is empty. 2003-01-23 Gonzalo Paniagua Javier * BufferedStream.cs: don't try to write a 0 sized array on when flushing the stream. Fixes bug #37045. 2003-01-18 Jonathan Pryor * FileStream.cs: Add IsAsync property. (Documented in "C# In A Nutshell".) 2003-01-06 Gonzalo Paniagua Javier * MemoryStream.cs: fixed bug #36319. 2002-12-16 Eduardo Garcia Cebollero * Directory.cs: Some fixes to SMB shares handling, and not compiling with csc, mcs compiles it correctly (mcs bug 35652) 2002-12-14 Eduardo Garcia Cebollero * Directory.cs: Some fixes related to correct some exceptions thrown 2002-12-11 Eduardo Garcia Cebollero * Directory.cs: Some Exceptions added, fixed GetParent(), CreateDirectory() should work with unix, native windows and windows samba shares. Converted end-lines from dos-mode to unix-mode 2002-12-08 Eduardo Garcia Cebollero * Directory.cs: CreateDirectory works now with Absolute paths too, not only with relative ones. 2002-12-07 Peter Williams * Directory.cs: Don't use the uninitialized pathsumm here. Don't try and create "" if we're using an absolute path. 2002-12-07 Eduardo Garcia Cebollero * Directory.cs: Now the creation of a new directory works recursively it will make parents as needed. 2002-11-21 Gonzalo Paniagua Javier * BufferedStream.cs: applied patch from that fixes Flush (). Tue Nov 19 13:01:22 CET 2002 Paolo Molaro * StreamWriter.cs: output the encoding preamble at the start of a stream if needed. 2002-11-07 Gonzalo Paniagua Javier * StreamReader.cs: Changed all Encoding.UTF8 to Encoding.UTF8Unmarked. 2002-11-06 Miguel de Icaza * StreamWriter.cs: Changed all Encoding.UTF8 to Encoding.UTF8Unmarked. 2002-10-31 Dick Porter * FileStream.cs: Fix buffering properly this time. Also kludge around broken pipe errors, treating them as EOF instead of throwing an IO exception. * MonoIO.cs: Return the error status in a parameter, as the GetLastError() value has long since been blown away if we try and look it up in a subsequent internal call invocation. * FileSystemInfo.cs: * FileInfo.cs: * File.cs: * Directory.cs: MonoIO methods now have an error parameter 2002-10-31 Gonzalo Paniagua Javier * TextReader.cs: implemented ReadBlock (). 2002-10-30 Miguel de Icaza * StreamWriter.cs: Ditto for Null stream. * BinaryReader.cs: Use Unmarked here too. * BinaryWriter.cs: Use the UTF8Unmarker encoding by default, this is what .NET does. 2002-10-23 Dick Porter * FileStream.cs: Implemented CanSeek, and used it around all the calls to MonoIO.Seek. Fixed buffering in Read() so that it doesn't block forever on short reads. * MonoFileType.cs: New enum for GetFileType * MonoIO.cs: Added GetFileType 2002-10-21 Gonzalo Paniagua Javier * StreamReader.cs: ReadLine now treats a \r not followed by a \n as a \n (this is what MS does). 2002-10-18 Dick Porter * FileStream.cs: SeekOrigin.End still calculates the offset from the end of the file with positive values extending the length. Fixes bug 32471. 2002-10-06 Gonzalo Paniagua Javier * Path.cs: some cleanup. Thanks to Martin Aliger. 2002-10-03 Gonzalo Paniagua Javier * FileStream.cs: throw an exception if trying to open a directory. Thanks to Martin Aliger. 2002-10-02 Gonzalo Paniagua Javier * Path.cs: fixes bug #28046. 2002-09-27 Gonzalo Paniagua Javier * StreamReader.cs: give more information when wrong parameters passed. 2002-09-21 Miguel de Icaza * FileStream.cs: Do not call FSync on the file. 2002-09-16 Miguel de Icaza * TextWriter.cs (Null): The Null field should be an instance of a TextWriter class that does nothing, so it is an instance of the NullTextWriter class. 2002-09-16 Nick Drochak * MemoryStream.cs (Close): Don't throw an exception if the stream is already closed. 2002-09-15 Miguel de Icaza * FileStream.cs (Dispose): Call FlushBuffer(), and not Flush, as Flush calls fsync(). The API docs show no explicit mention that Flush() should even do an fsync, I am thinking that we should drop that from the runtime. 2002-09-09 Miguel de Icaza * StreamWriter.cs: When no encoding is provided, create an encoding without markers, this is what MS does. 2002-09-06 Miguel de Icaza * StreamReader.cs: Implement detection of byte marks and skipping of byte marks at the beginning of the stream. (ReadToEnd): Use buffered read instead of char-by-char processing. Correct the default arguments for creating the StreamReader. 2002-08-29 Gonzalo Paniagua Javier * CheckArgument.cs: fixed check for empty string. * Path.cs: various fixes. It passes all the tests in new PathTest. 2002-08-29 Duncan Mak * StreamWriter.cs: Set DisposedAlready after calling flush. Fixes the build for gtk#. 2002-08-27 Gonzalo Paniagua Javier * BinaryReader.cs: * BinaryWriter.cs: * MemoryStream.cs: * StreamReader.cs: * StreamWriter.cs: * StringReader.cs: * StringWriter.cs: * TextWriter.cs: IDisposable fixes. 2002-08-24 Miguel de Icaza * StreamReader.cs: Removed TODOs, as the code seems to be complete. * Path.cs (GetTempFileName): Make this routine atomic by not testing and then creating, but using the create call to ensure that we own the filename. 2002-08-23 Gonzalo Paniagua Javier * FileLoadException.cs: implemented ToString. * StreamWriter.cs: added Null field and implemented Write (char) and Write (char []). 2002-08-23 Gonzalo Paniagua Javier * StreamReader.cs: implemented NullStreamReader. 2002-08-21 Miguel de Icaza * Path.cs (GetDirectoryName): Fix for filenames with size = 1 * File.cs: Removed all references that threw exceptions when the paths contains a colon, as this is a valid part of an identifier on Unix. Everywhere: The String.Empty return from GetDirectoryName means that there is no directory information about the path. 2002-08-20 Gonzalo Paniagua Javier * FileNotFoundException.cs: use Message and InnerException from base class. Changed Message and ToString (). 2002-08-19 Dick Porter * BinaryWriter.cs: The length of a string is counted in bytes, not chars 2002-08-18 Dick Porter * BinaryReader.cs: Fixed buffering 2002-08-09 Nick Drochak * BinaryReader.cs: added virtual to Dispose(bool). 2002-08-03 Jason Diamond * StringWriter.cs: Return UnicodeEncoding for Encoding property. 2002-08-03 Jason Diamond * StreamWriter.cs: Use GetByteCount() to get exact length instead of GetMaxByteCount when converting chars to bytes. 2002-07-31 Duncan Mak * StreamReader.cs: (Dispose): Added and implmented. * StreamWriter.cs: (Dispose): Fixed visibility. (Initialize): Fixed visibility, made internal. * BinaryReader.cs: (Dispose): Fixed visibility. 2002-07-28 Gonzalo Paniagua Javier * File.cs: (Create): allow file names without path. Fri Jul 26 15:45:04 CEST 2002 Paolo Molaro * FileStream.cs: patch from erik@bagfors.nu to add Name property support. 2002-07-20 Dick Porter * MonoIO.cs: Added icall to CreatePipe 2002-07-18 Gonzalo Paniagua Javier * FileInfo.cs: fixes buglet #27940 2002-07-17 Gonzalo Paniagua Javier * Path.cs: removed unneeded line from GetExtension. 2002-07-12 Gonzalo Paniagua Javier * FileStream.cs: (.ctor): call MonoIO.GetException with the file name. 2002-07-02 Mike Kestner * StreamReader.cs: Guard against ^\n lines as pointed out by Gonzalo. 2002-07-02 Mike Kestner * StreamReader.cs: Revert the last Peek change and fix the ReadLine end of line detection code instead. 2002-07-02 Gonzalo Paniagua Javier * StreamReader.cs: (Peek): no need to have seek capabilitites. 2002-06-17 Dietmar Maurer * Path.cs (ChangeExtension): handle some special cases (fixes bug #25319) * File.cs (Delete): only call Directory.Exists() if DirName != "" 2002-06-12 Gonzalo Paniagua Javier * Directory.cs: fixed bug #26133 and also test if the directory exist before performing the search. 2002-06-12 Nick Drochak * StringReader.cs (ReadLine): Return null when we get to end of the string. 2002-05-22 Lawrence Pit * StreamWriter.cs: added ability to write null value 2002-05-19 Lawrence Pit * Stream.cs: NullStream.ReadByte now returns -1 instead of 0 to prevent endless loops. 2002-05-17 Dan Lewis * FileStream.cs: Enforce lower bound on buffer size. 2002-05-16 Piers Haken * Stream.cs: Implement synchronous {Begin|End}{Read|Write}() methods. 2002-05-17 Nick Drochak * StreamWriter.cs: Implement buffering. Also implemented dispose pattern as recommended by the MS docs. Must call Close() now to ensure the buffer is flushed. 2002-05-15 Nick Drochak * Path.cs (GetDirectoryName): Return String.Empty if there is no directory * StreamReader.cs: Add some parameter checking on file names. * StreamWriter.cs: Add some parameter checking on file names. 2002-05-14 Nick Drochak * File.cs: Add parameter checks to most methods. Not completely done, but all current unit tests pass. * Path.cs: Implement GetTempFileName(). 2002-05-10 Nick Drochak * StreamWriter.cs (Flush): Throw proper exception if internal stream has already been closed when we try to flush. 2002/05/10 Nick Drochak * FileNotFoundException.cs (ToString): Don't try to use the inner exception, because it might be null. Use the message instead. 2002-05-09 Nick Drochak * File.cs (Delete): Do not throw an exception if the file does not exist. 2002-05-08 Mike Gray * File.cs: According to ECMA spec and MS docs Copy(src, dest) should not overwrite dest by default. 2002-05-08 Nick Drochak * StreamWriter.cs: Add paramter check to constructors and throw exceptions where appropriate. Tue May 7 11:47:46 CEST 2002 Paolo Molaro * StreamReader.cs: return the number of chars read even if we diddn't fill the whole buffer (makes Sergey's ilasm work with mono). 2002-05-07 Mike Gray * FileInfo.cs (Create): Implement missing method. 2002-05-07 Mike Gray * File.cs: Implemented CreateText method, and fixed dst compares to compare against "" instead of null twice. 2002-05-05 Nick Drochak * StreamReader.cs: Throw exceptions where needed. Changed Null field to use new internal class since null cannot be passed to constructor anymore. Also, fix a coule of small bugs. 2002-05-03 Nick Drochak * MemoryStream.cs: Refrain from allocating array until the space is really needed. This fixes a bug in the Length property when the constructor without the byte array is used. 2002-05-01 Duncan Mak * DirectoryNotFoundException.cs (constructor): Added missing serialization constructor. 2002-04-30 Duncan Mak * FileLoadException.cs (constructors): Added missing (string, string) ctor, as well as (string, string, Exception) ctor. (Message): Added more info to the error message (ToString): Added. We'll need to add the StackTrace stuff when that works. * FileShare.cs: Add a missing field, Inheritable. * TextReader.cs: Renamed Synchronised method to Synchronized. * TextWriter.cs: Renamed Synchronised method to Synchronized. Renamed protected member coreNewLine to CoreNewLine. 2002-04-30 Sergey Chaban * BinaryReader.cs: Allocate buffer before its first use. Handle end of stream properly. Methods to read native types (ReadInt* etc.) are little-endian (see Compact Framework docs). * BinaryWriter.cs: Store data in little-endian format. Use internal buffer for conversions. 2002-03-31 Dick Porter * Directory.cs: Strip out "." and ".." from returned list * FileAttributes.cs: Get the right enum values 2002-03-28 Dietmar Maurer * TextWriter.cs (write): added check for null 2002-03-28 Dan Lewis * Directory.cs: Throws DirectoryNotFoundException. * MonoIO.cs: Fixed to work around enum problem. 2002-03-27 Dan Lewis * StreamReader.cs: Implemented ReadLine() and ReadEnd(). 2002-03-27 Dan Lewis * Directory.cs, File.cs, FileSystemInfo.cs, FileInfo.cs, DirectoryInfo.cs, Path.cs: Modified to use MonoIO class instead of wrapper and PAL classes. * MonoIO.cs, MonoIOStat.cs, MonoIOError.cs: Added. 2002-03-25 Mike Kestner * MemoryStream.cs (Read): Fixed bug in exception throw. 2002-03-24 Mike Kestner * StreamReader.cs (ReadBuffer): Fix buffer merging bugs. 2002-03-23 Martin Baulig * StreamReader.cs: Always do buffered reading, use 4k blocks. (Read (char[], int, int)): Implemented. (DiscardBufferedData): Implemented. 2002-03-21 Mike Kestner * StreamReader.cs : Fill out, add buffering, and use encoding. 2002-03-19 Martin Baulig * StreamWriter.cs (StreamWriter (string)): The default is to override the file, not to append to it. (StreamWriter (string path, bool append)): When appending, seek to the end of the file, otherwise truncate the file to zero length. (Dispose (bool)): Close the internalStream. (Flush): Flush the interalStream. (Write (char[], int, int)): Flush the internalStream in auto-flush-mode. 2002-03-19 Dan Lewis * FileStream.cs: Flush buffer before FileSetLength. 2002-02-28 Miguel de Icaza * Stream.cs (NullStream): Do not track position, this beast does nothing in practice. 2002-03-15 Dan Lewis * SearchPattern.cs: New class. Glob matching code for Directory. * Directory.cs: Changed to use SearchPattern instead of mono_glob_*() 2002/03/15 Nick Drochak * DirectoryInfo.cs: Fixed the overloaded GetDirectories and GetFiles. This code seemed to be copied from somewhere, and it was close, but didn't match the docs. This was the last bit needed to get NAnt to compile with our class libs. 2002-03-12 Duncan Mak * EndOfStreamException.cs: * FileLoadException.cs: * FileNotFoundException.cs: * PathTooLongException.cs: Changed the base classes to IOException instead of SystemException. * IOException.cs: Added missing constructors. 2002-03-07 Nick Drochak * FileMode.cs: Docs don't say this should be explicitly derived from int, so just make it a normal Enum. 2002-03-02 Jason Diamond * StringReader.cs: Fixed off-by-one error in Peek() and Read(). 2002-02-12 Nick Drochak * PathTooLongException.cs: put it in the correct namespace * EndOfStreamException.cs: put it in the correct namespace Thu Jan 31 17:32:32 CET 2002 Paolo Molaro * Directory.cs: handle opendir() return NULL and absolute filenames. 2002-01-31 Duncan Mak * FileLoadException.cs: * FileNotFoundException: Added missing bits for serialization. Thu Jan 24 17:42:54 CET 2002 Paolo Molaro * Directory.cs: allow directories in GetFiles() mask. 2002-01-23 Miguel de Icaza * FileInfo.c (CopyTo, MoveTo): Implement. * FileStream.cs: Add argument checking to the constructor. * File.cs: Rewrote most of the file. Implement Copy, Open, Create, OpenText, OpenWrite, Move. Made pending methods flagged as MonoTODO. * Directory.cs (Delete): reimplement without using DirectoryInfo. (Delete): Implement the recursive version. (GetCreationTime, GetLastWriteTime, GetLastAccessTime): Implement. (Move): Reimplement. (getNames): dead code removal. * Path.cs: define an internal DirectorySeparatorStr that we use in a few spots. * Wrapper.cs: Updated to new version. * DirectoryInfo (Delete): Implement using the Directory API. * DirectoryInfo.cs (GetFiles, GetDirectories, GetFileSystemInfos, Delete, Create, Parent, Exists, MoveTo): Implement. * Directory.cs (GetListing): implement new utility function. (GetDirectories): Implement. (GetFileSystemEntries): Implement. (GetFiles): Implement. * CheckArgument.cs (Path): Do not allow null by default. Tue Jan 22 22:53:23 CET 2002 Paolo Molaro * DirectoryInfo.cs, FileInfo.cs: do not use Debug from the system assembly in corlib. 2002-01-20 Nick Drochak * SeekOrigin.cs: Added Serializable attribute. 2002-01-19 Duncan Mak * PathTooLongException.cs: * EndOfStreamException.cs: Added to CVS. Thu Jan 10 12:06:46 MST 2002 Matt Kimball * BufferedStream.cs: Initial implemenation. The synchronous methods for both reading and writing are implemented. I'll do the asynchronous methods in a bit. Wed Jan 9 16:04:39 MST 2002 Matt Kimball * BinaryWriter.cs: Initial implementation. And it's all there. * BinaryReader.cs: The constructor now uses the passed in encoding, not UTF8 always. Wed Jan 9 13:54:28 MST 2002 Matt Kimball * BinaryReader.cs: Initial implementation. I think it's complete. 2002-01-04 Ravi Pratap * CheckArgument.cs, CheckPermission.cs, Directory.cs: MonoTODO attribute decorations. * DirectoryInfo.cs, File.cs, FileInfo.cs, FileSystemInfo.cs, Path.cs, TextReader.cs, TextWriter.cs : Ditto. * FileLoadException.cs, FileNotFoundException.cs, StreamReader.cs: Ditto. 2001-12-11 Dick Porter * FileStream.cs: Use handles rather than casting file descriptors. Added Handle property. Wed Nov 14 16:47:47 CET 2001 Paolo Molaro * CheckPermission.cs: disable ModeAccess() code: it's wrong. * FileStream.cs: only trow an exception if the read failed in ReadByte(). * StreamReader.cs: implement Peek and Read. * TextWriter.cs: CLSCompliant updates. 2001-11-10 Sean MacIsaac * FileNotFoundException.cs: Added some constructors * Path.cs (GetFullPath): Fixed implementation Fri Nov 2 18:27:58 CET 2001 Paolo Molaro * DirectoryNotFoundException.cs: implemented. Tue Sep 25 18:54:06 CEST 2001 Paolo Molaro * File.cs: fix signatures of the Open() and OpenRead() functions (they are static). Thu Sep 13 18:04:23 CEST 2001 Paolo Molaro * FileLoadException.cs, FileNotFoundException.cs: added. 2001-08-28 Dietmar Maurer * TextReader.cs: implemented the Read method * StreamReader.cs: impl. stubs * StreamWriter.cs: impl. * TextWriter.cs: implemented Write and WriteLine methods Sun Aug 26 23:01:41 CEST 2001 Paolo Molaro * FileAccess.cs, FileMode.cs: change values to be compatible with the ms ones. Sun Aug 26 11:47:56 CEST 2001 Paolo Molaro * IOException.cs: Implemented System.IO.Exception. 2001-07-18 Michael Lambert *SeekOrigin.cs.cs, FileShare.cs, FileMode.cs, FileAccess.cs: Add. 2001-07-19 Marcin Szczepanski * System.IO.MemoryStream.cs: Added. Had quite a few cases of "LAMESPEC", but the tests work against the MS implementation so the major functions are right (ie. Read/Write/Seek). Some more tests required for the various constructors and exceptions. 2001-07-16 Marcin Szczepanski * StringReader.cs, StringWriter.cs, TextReader.cs, TextWriter.cs: New class implemenations. * StringReaderTest.cs, StringWriterTest.cs: Test suite for the above.