Пример #1
0
		public static bool ReplaceFile (string sourceFileName,
		string destinationFileName,
		string destinationBackupFileName,
		bool ignoreMetadataErrors,
		out MonoIOError error)
		{
			throw new System.NotImplementedException();
		}
Пример #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);
			}
		}
Пример #3
0
		public extern static bool GetFileStat (string path,
						       out MonoIOStat stat,
						       out MonoIOError error);
Пример #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;
		}
Пример #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);
Пример #7
0
		public static bool SetCreationTime (string path,
						DateTime dateTime,
						out MonoIOError error)
		{
			return SetFileTime (path, 1, -1, -1, -1, dateTime, out error);
		}
Пример #8
0
		public extern static long GetLength (IntPtr handle,
						     out MonoIOError error);
Пример #9
0
 public static extern string[] GetFileSystemEntries(string path, string path_with_pattern, int attrs, int mask, out MonoIOError error);
Пример #10
0
 public static extern bool RemoveDirectory(string path, out MonoIOError error);
Пример #11
0
 public extern static bool Close(IntPtr handle,
                                 out MonoIOError error);
Пример #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));
            }
        }
Пример #13
0
 public static bool SetLastWriteTime(string path,
                                     DateTime dateTime,
                                     out MonoIOError error)
 {
     return(SetFileTime(path, 3, -1, -1, -1, dateTime, out error));
 }
Пример #14
0
 public static bool SetCreationTime(string path,
                                    DateTime dateTime,
                                    out MonoIOError error)
 {
     return(SetFileTime(path, 1, -1, -1, -1, dateTime, out error));
 }
Пример #15
0
		public extern static int Read (IntPtr handle, byte [] dest,
					       int dest_offset, int count,
					       out MonoIOError error);
Пример #16
0
		public extern static long Seek (IntPtr handle, long offset,
						SeekOrigin origin,
						out MonoIOError error);
Пример #17
0
 public static extern string GetCurrentDirectory(out MonoIOError error);
Пример #18
0
		public extern static bool SetFileTime (IntPtr handle,
						       long creation_time,
						       long last_access_time,
						       long last_write_time,
						       out MonoIOError error);
Пример #19
0
 public static extern bool SetCurrentDirectory(string path, out MonoIOError error);
Пример #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;
		}
Пример #21
0
 public static extern bool MoveFile(string path, string dest, out MonoIOError error);
Пример #22
0
		private static extern IntPtr OpenMutex_internal (string name, MutexRights rights, out MonoIOError error);
Пример #23
0
 public static extern bool CopyFile(string path, string dest, bool overwrite, out MonoIOError error);
Пример #24
0
 public static extern IntPtr OpenEvent_internal(string name, EventWaitHandleRights rights, out MonoIOError error);
Пример #25
0
 public static extern bool DeleteFile(string path, out MonoIOError error);
Пример #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;
		}
Пример #27
0
 public static extern bool ReplaceFile(string sourceFileName, string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors, out MonoIOError error);
Пример #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;
		}
Пример #29
0
 public static extern FileAttributes GetFileAttributes(string path, out MonoIOError error);
Пример #30
0
		public extern static IntPtr Open (string filename,
						  FileMode mode,
						  FileAccess access,
						  FileShare share,
						  FileOptions options,
						  out MonoIOError error);
Пример #31
0
 public static extern bool SetFileAttributes(string path, FileAttributes attrs, out MonoIOError error);
Пример #32
0
		public extern static int Write (IntPtr handle, [In] byte [] src,
						int src_offset, int count,
						out MonoIOError error);
Пример #33
0
 public static extern MonoFileType GetFileType(IntPtr handle, out MonoIOError error);
Пример #34
0
		public extern static bool Flush (IntPtr handle,
						 out MonoIOError error);
Пример #35
0
        public static bool Exists(string path, out MonoIOError error)
        {
            FileAttributes fileAttributes = MonoIO.GetFileAttributes(path, out error);

            return(fileAttributes != MonoIO.InvalidFileAttributes);
        }
Пример #36
0
		public extern static bool SetLength (IntPtr handle,
						     long length,
						     out MonoIOError error);
Пример #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);
        }
Пример #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);
		}
Пример #39
0
		public extern static bool ReplaceFile (string sourceFileName, 
						       string destinationFileName, 
						       string destinationBackupFileName, 
						       bool ignoreMetadataErrors,
						       out MonoIOError error);
Пример #40
0
		public static bool SetLastWriteTime (string path,
						DateTime dateTime,
						out MonoIOError error)
		{
			return SetFileTime (path, 3, -1, -1, -1, dateTime, out error);
		}
Пример #41
0
		public extern static FileAttributes GetFileAttributes (string path, out MonoIOError error);
Пример #42
0
		public extern static void Unlock (IntPtr handle,
						  long position, long length,
						  out MonoIOError error);
Пример #43
0
		public extern static bool SetFileAttributes (string path, FileAttributes attrs, out MonoIOError error);
Пример #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);
			}
		}
Пример #45
0
		public extern static MonoFileType GetFileType (IntPtr handle, out MonoIOError error);
Пример #46
0
		private static extern IntPtr OpenSemaphore_internal (string name, SemaphoreRights rights, out MonoIOError error);
Пример #47
0
		public extern static string FindFirst (string path, string pattern, out FileAttributes result_attr, out MonoIOError error, out IntPtr handle);
Пример #48
0
		extern static bool GetDiskFreeSpaceInternal (string pathName, out ulong freeBytesAvail,
							     out ulong totalNumberOfBytes, out ulong totalNumberOfFreeBytes,
							     out MonoIOError error);
Пример #49
0
 extern static bool GetDiskFreeSpaceInternal(string pathName, out ulong freeBytesAvail,
                                             out ulong totalNumberOfBytes, out ulong totalNumberOfFreeBytes,
                                             out MonoIOError error);