public static bool ReplaceFile (string sourceFileName,
		string destinationFileName,
		string destinationBackupFileName,
		bool ignoreMetadataErrors,
		out MonoIOError error)
		{
			throw new System.NotImplementedException();
		}
Esempio n. 2
0
		// error methods
		public static Exception GetException (MonoIOError error)
		{
			/* This overload is currently only called from
			 * File.MoveFile(), Directory.Move() and
			 * Directory.GetCurrentDirectory() -
			 * everywhere else supplies a path to format
			 * with the error text.
			 */
			switch(error) {
			case MonoIOError.ERROR_ACCESS_DENIED:
				return new UnauthorizedAccessException ("Access to the path is denied.");
			case MonoIOError.ERROR_FILE_EXISTS:
				string message = "Cannot create a file that already exist.";
				return new IOException (message, FileAlreadyExistsHResult);
			default:
				/* Add more mappings here if other
				 * errors trigger the named but empty
				 * path bug (see bug 82141.) For
				 * everything else, fall through to
				 * the other overload
				 */
				return GetException (String.Empty, error);
			}
		}
Esempio n. 3
0
		public extern static bool GetFileStat (string path,
						       out MonoIOStat stat,
						       out MonoIOError error);
Esempio n. 4
0
		public static bool ExistsDirectory (string path,
						    out MonoIOError error)
		{
			FileAttributes attrs = GetFileAttributes (path,
								  out error);
								  
			// Actually, we are looking for a directory, not a file
			if (error == MonoIOError.ERROR_FILE_NOT_FOUND)
				error = MonoIOError.ERROR_PATH_NOT_FOUND;
				
			if (attrs == InvalidFileAttributes)
				return false;

			if ((attrs & FileAttributes.Directory) == 0)
				return false;

			return true;
		}
Esempio n. 5
0
		public extern static string FindNext (IntPtr handle, out FileAttributes result_attr, out MonoIOError error);
		public extern static bool Close (IntPtr handle,
		out MonoIOError error);
Esempio n. 7
0
		public static bool SetCreationTime (string path,
						DateTime dateTime,
						out MonoIOError error)
		{
			return SetFileTime (path, 1, -1, -1, -1, dateTime, out error);
		}
Esempio n. 8
0
		public extern static long GetLength (IntPtr handle,
						     out MonoIOError error);
Esempio n. 9
0
 public static extern string[] GetFileSystemEntries(string path, string path_with_pattern, int attrs, int mask, out MonoIOError error);
Esempio n. 10
0
 public static extern bool RemoveDirectory(string path, out MonoIOError error);
Esempio n. 11
0
 public extern static bool Close(IntPtr handle,
                                 out MonoIOError error);
Esempio n. 12
0
        public static Exception GetException(string path,
                                             MonoIOError error)
        {
            string message;

            switch (error)
            {
            // FIXME: add more exception mappings here
            case MonoIOError.ERROR_FILE_NOT_FOUND:
                message = String.Format("Could not find file \"{0}\"", path);
#if NET_2_1
                return(new IsolatedStorageException(message));
#else
                return(new FileNotFoundException(message, path));
#endif

            case MonoIOError.ERROR_TOO_MANY_OPEN_FILES:
                return(new IOException("Too many open files", unchecked ((int)0x80070000) | (int)error));

            case MonoIOError.ERROR_PATH_NOT_FOUND:
                message = String.Format("Could not find a part of the path \"{0}\"", path);
#if NET_2_1
                return(new IsolatedStorageException(message));
#else
                return(new DirectoryNotFoundException(message));
#endif

            case MonoIOError.ERROR_ACCESS_DENIED:
                message = String.Format("Access to the path \"{0}\" is denied.", path);
                return(new UnauthorizedAccessException(message));

            case MonoIOError.ERROR_INVALID_HANDLE:
                message = String.Format("Invalid handle to path \"{0}\"", path);
                return(new IOException(message, unchecked ((int)0x80070000) | (int)error));

            case MonoIOError.ERROR_INVALID_DRIVE:
                message = String.Format("Could not find the drive  '{0}'. The drive might not be ready or might not be mapped.", path);
#if !NET_2_1
                return(new DriveNotFoundException(message));
#else
                return(new IOException(message, unchecked ((int)0x80070000) | (int)error));
#endif
            case MonoIOError.ERROR_FILE_EXISTS:
                message = String.Format("Could not create file \"{0}\". File already exists.", path);
                return(new IOException(message, unchecked ((int)0x80070000) | (int)error));

            case MonoIOError.ERROR_FILENAME_EXCED_RANGE:
                message = String.Format("Path is too long. Path: {0}", path);
                return(new PathTooLongException(message));

            case MonoIOError.ERROR_INVALID_PARAMETER:
                message = String.Format("Invalid parameter");
                return(new IOException(message, unchecked ((int)0x80070000) | (int)error));

            case MonoIOError.ERROR_WRITE_FAULT:
                message = String.Format("Write fault on path {0}", path);
                return(new IOException(message, unchecked ((int)0x80070000) | (int)error));

            case MonoIOError.ERROR_SHARING_VIOLATION:
                message = String.Format("Sharing violation on path {0}", path);
                return(new IOException(message, unchecked ((int)0x80070000) | (int)error));

            case MonoIOError.ERROR_LOCK_VIOLATION:
                message = String.Format("Lock violation on path {0}", path);
                return(new IOException(message, unchecked ((int)0x80070000) | (int)error));

            case MonoIOError.ERROR_HANDLE_DISK_FULL:
                message = String.Format("Disk full. Path {0}", path);
                return(new IOException(message, unchecked ((int)0x80070000) | (int)error));

            case MonoIOError.ERROR_DIR_NOT_EMPTY:
                message = String.Format("Directory {0} is not empty", path);
                return(new IOException(message, unchecked ((int)0x80070000) | (int)error));

            case MonoIOError.ERROR_ENCRYPTION_FAILED:
                return(new IOException("Encryption failed", unchecked ((int)0x80070000) | (int)error));

            case MonoIOError.ERROR_CANNOT_MAKE:
                message = String.Format("Path {0} is a directory", path);
                return(new IOException(message, unchecked ((int)0x80070000) | (int)error));

            case MonoIOError.ERROR_NOT_SAME_DEVICE:
                message = "Source and destination are not on the same device";
                return(new IOException(message, unchecked ((int)0x80070000) | (int)error));

            default:
                message = String.Format("Win32 IO returned {0}. Path: {1}", error, path);
                return(new IOException(message, unchecked ((int)0x80070000) | (int)error));
            }
        }
Esempio n. 13
0
 public static bool SetLastWriteTime(string path,
                                     DateTime dateTime,
                                     out MonoIOError error)
 {
     return(SetFileTime(path, 3, -1, -1, -1, dateTime, out error));
 }
Esempio n. 14
0
 public static bool SetCreationTime(string path,
                                    DateTime dateTime,
                                    out MonoIOError error)
 {
     return(SetFileTime(path, 1, -1, -1, -1, dateTime, out error));
 }
Esempio n. 15
0
		public extern static int Read (IntPtr handle, byte [] dest,
					       int dest_offset, int count,
					       out MonoIOError error);
Esempio n. 16
0
		public extern static long Seek (IntPtr handle, long offset,
						SeekOrigin origin,
						out MonoIOError error);
Esempio n. 17
0
 public static extern string GetCurrentDirectory(out MonoIOError error);
Esempio n. 18
0
		public extern static bool SetFileTime (IntPtr handle,
						       long creation_time,
						       long last_access_time,
						       long last_write_time,
						       out MonoIOError error);
Esempio n. 19
0
 public static extern bool SetCurrentDirectory(string path, out MonoIOError error);
Esempio n. 20
0
		public static bool SetFileTime (string path,
						int type,
						long creation_time,
						long last_access_time,
						long last_write_time,
						DateTime dateTime,
						out MonoIOError error)
		{
			IntPtr handle;
			bool result;

			handle = Open (path, FileMode.Open,
				       FileAccess.ReadWrite,
				       FileShare.ReadWrite, FileOptions.None, out error);
			if (handle == MonoIO.InvalidHandle)
				return false;

			switch (type) {
			case 1:
				creation_time = dateTime.ToFileTime ();
				break;
			case 2:
				last_access_time = dateTime.ToFileTime ();
				break;
			case 3:
				last_write_time = dateTime.ToFileTime ();
				break;
			}

			result = SetFileTime (handle, creation_time,
					      last_access_time,
					      last_write_time, out error);

			MonoIOError ignore_error;
			Close (handle, out ignore_error);
			
			return result;
		}
Esempio n. 21
0
 public static extern bool MoveFile(string path, string dest, out MonoIOError error);
Esempio n. 22
0
		private static extern IntPtr OpenMutex_internal (string name, MutexRights rights, out MonoIOError error);
Esempio n. 23
0
 public static extern bool CopyFile(string path, string dest, bool overwrite, out MonoIOError error);
Esempio n. 24
0
 public static extern IntPtr OpenEvent_internal(string name, EventWaitHandleRights rights, out MonoIOError error);
Esempio n. 25
0
 public static extern bool DeleteFile(string path, out MonoIOError error);
Esempio n. 26
0
		public static bool ExistsFile (string path,
					       out MonoIOError error)
		{
			FileAttributes attrs = GetFileAttributes (path,
								  out error);
			if (attrs == InvalidFileAttributes)
				return false;

			if ((attrs & FileAttributes.Directory) != 0)
				return false;

			return true;
		}
Esempio n. 27
0
 public static extern bool ReplaceFile(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors, out MonoIOError error);
Esempio n. 28
0
		public static bool ExistsSymlink (string path,
						  out MonoIOError error)
		{
			FileAttributes attrs = GetFileAttributes (path,
								  out error);
			if (attrs == InvalidFileAttributes)
				return false;
			
			if ((attrs & FileAttributes.ReparsePoint) == 0)
				return false;

			return true;
		}
Esempio n. 29
0
 public static extern FileAttributes GetFileAttributes(string path, out MonoIOError error);
Esempio n. 30
0
		public extern static IntPtr Open (string filename,
						  FileMode mode,
						  FileAccess access,
						  FileShare share,
						  FileOptions options,
						  out MonoIOError error);
Esempio n. 31
0
 public static extern bool SetFileAttributes(string path, FileAttributes attrs, out MonoIOError error);
Esempio n. 32
0
		public extern static int Write (IntPtr handle, [In] byte [] src,
						int src_offset, int count,
						out MonoIOError error);
Esempio n. 33
0
 public static extern MonoFileType GetFileType(IntPtr handle, out MonoIOError error);
Esempio n. 34
0
		public extern static bool Flush (IntPtr handle,
						 out MonoIOError error);
Esempio n. 35
0
        public static bool Exists(string path, out MonoIOError error)
        {
            FileAttributes fileAttributes = MonoIO.GetFileAttributes(path, out error);

            return(fileAttributes != MonoIO.InvalidFileAttributes);
        }
Esempio n. 36
0
		public extern static bool SetLength (IntPtr handle,
						     long length,
						     out MonoIOError error);
Esempio n. 37
0
        public static bool ExistsFile(string path, out MonoIOError error)
        {
            FileAttributes fileAttributes = MonoIO.GetFileAttributes(path, out error);

            return(fileAttributes != MonoIO.InvalidFileAttributes && (fileAttributes & FileAttributes.Directory) == (FileAttributes)0);
        }
Esempio n. 38
0
		public static bool SetFileTime (string path,
						long creation_time,
						long last_access_time,
						long last_write_time,
						out MonoIOError error)
		{
			return SetFileTime (path,
				0,
				creation_time,
				last_access_time,
				last_write_time,
				DateTime.MinValue,
				out error);
		}
Esempio n. 39
0
		public extern static bool ReplaceFile (string sourceFileName, 
						       string destinationFileName, 
						       string destinationBackupFileName, 
						       bool ignoreMetadataErrors,
						       out MonoIOError error);
Esempio n. 40
0
		public static bool SetLastWriteTime (string path,
						DateTime dateTime,
						out MonoIOError error)
		{
			return SetFileTime (path, 3, -1, -1, -1, dateTime, out error);
		}
Esempio n. 41
0
		public extern static FileAttributes GetFileAttributes (string path, out MonoIOError error);
Esempio n. 42
0
		public extern static void Unlock (IntPtr handle,
						  long position, long length,
						  out MonoIOError error);
Esempio n. 43
0
		public extern static bool SetFileAttributes (string path, FileAttributes attrs, out MonoIOError error);
Esempio n. 44
0
		public static Exception GetException (string path,
						      MonoIOError error)
		{
			string message;

			switch (error) {
			// FIXME: add more exception mappings here
			case MonoIOError.ERROR_FILE_NOT_FOUND:
				message = String.Format ("Could not find file \"{0}\"", path);
#if MOONLIGHT
				return new IsolatedStorageException (message);
#else
				return new FileNotFoundException (message, path);
#endif

			case MonoIOError.ERROR_TOO_MANY_OPEN_FILES:
				return new IOException ("Too many open files", unchecked((int)0x80070000) | (int)error);
				
			case MonoIOError.ERROR_PATH_NOT_FOUND:
				message = String.Format ("Could not find a part of the path \"{0}\"", path);
#if MOONLIGHT
				return new IsolatedStorageException (message);
#else
				return new DirectoryNotFoundException (message);
#endif

			case MonoIOError.ERROR_ACCESS_DENIED:
				message = String.Format ("Access to the path \"{0}\" is denied.", path);
				return new UnauthorizedAccessException (message);

			case MonoIOError.ERROR_INVALID_HANDLE:
				message = String.Format ("Invalid handle to path \"{0}\"", path);
				return new IOException (message, unchecked((int)0x80070000) | (int)error);
			case MonoIOError.ERROR_INVALID_DRIVE:
				message = String.Format ("Could not find the drive  '{0}'. The drive might not be ready or might not be mapped.", path);
#if !NET_2_1
				return new DriveNotFoundException (message);
#else
				return new IOException (message, unchecked((int)0x80070000) | (int)error);
#endif
			case MonoIOError.ERROR_FILE_EXISTS:
				message = String.Format ("Could not create file \"{0}\". File already exists.", path);
				return new IOException (message, unchecked((int)0x80070000) | (int)error);

			case MonoIOError.ERROR_FILENAME_EXCED_RANGE:
				message = String.Format ("Path is too long. Path: {0}", path); 
				return new PathTooLongException (message);

			case MonoIOError.ERROR_INVALID_PARAMETER:
				message = String.Format ("Invalid parameter");
				return new IOException (message, unchecked((int)0x80070000) | (int)error);

			case MonoIOError.ERROR_WRITE_FAULT:
				message = String.Format ("Write fault on path {0}", path);
				return new IOException (message, unchecked((int)0x80070000) | (int)error);

			case MonoIOError.ERROR_SHARING_VIOLATION:
				message = String.Format ("Sharing violation on path {0}", path);
				return new IOException (message, unchecked((int)0x80070000) | (int)error);
				
			case MonoIOError.ERROR_LOCK_VIOLATION:
				message = String.Format ("Lock violation on path {0}", path);
				return new IOException (message, unchecked((int)0x80070000) | (int)error);
			
			case MonoIOError.ERROR_HANDLE_DISK_FULL:
				message = String.Format ("Disk full. Path {0}", path);
				return new IOException (message, unchecked((int)0x80070000) | (int)error);
			
			case MonoIOError.ERROR_DIR_NOT_EMPTY:
				message = String.Format ("Directory {0} is not empty", path);
				return new IOException (message, unchecked((int)0x80070000) | (int)error);

			case MonoIOError.ERROR_ENCRYPTION_FAILED:
				return new IOException ("Encryption failed", unchecked((int)0x80070000) | (int)error);

			case MonoIOError.ERROR_CANNOT_MAKE:
				message = String.Format ("Path {0} is a directory", path);
				return new IOException (message, unchecked((int)0x80070000) | (int)error);
				
			case MonoIOError.ERROR_NOT_SAME_DEVICE:
				message = "Source and destination are not on the same device";
				return new IOException (message, unchecked((int)0x80070000) | (int)error);
				
			default:
				message = String.Format ("Win32 IO returned {0}. Path: {1}", error, path);
				return new IOException (message, unchecked((int)0x80070000) | (int)error);
			}
		}
Esempio n. 45
0
		public extern static MonoFileType GetFileType (IntPtr handle, out MonoIOError error);
Esempio n. 46
0
		private static extern IntPtr OpenSemaphore_internal (string name, SemaphoreRights rights, out MonoIOError error);
Esempio n. 47
0
		public extern static string FindFirst (string path, string pattern, out FileAttributes result_attr, out MonoIOError error, out IntPtr handle);
Esempio n. 48
0
		extern static bool GetDiskFreeSpaceInternal (string pathName, out ulong freeBytesAvail,
							     out ulong totalNumberOfBytes, out ulong totalNumberOfFreeBytes,
							     out MonoIOError error);
Esempio n. 49
0
 extern static bool GetDiskFreeSpaceInternal(string pathName, out ulong freeBytesAvail,
                                             out ulong totalNumberOfBytes, out ulong totalNumberOfFreeBytes,
                                             out MonoIOError error);