Esempio n. 1
0
        /// <summary>
        /// Returns a Disk object associated with an existing virtual disk image file.  The name (extension) of the file name determines the
        /// type of Disk object actually returned.
        /// </summary>
        /// <param name="filename">File name of virtual disk image.</param>
        /// <param name="iswriteable">Returns a writeable Disk object if this is <value>true</value>.</param>
        /// <returns>A Disk object associated with the given file.</returns>
        public static IDisk OpenDisk(string filename, bool iswriteable)
        {
            filename = filename.ToLowerInvariant();
            var access = iswriteable ? FileAccess.ReadWrite : FileAccess.Read;

            if (filename.EndsWith(".vdk"))
            {
                return(VdkDisk.Open(new FileStream(filename, FileMode.Open, access), iswriteable));
            }
            if (filename.EndsWith(".dsk"))
            {
                return(JvcDisk.Open(new FileStream(filename, FileMode.Open, access), iswriteable));
            }
            if (filename.EndsWith(".hfe"))
            {
                return(HfeDisk.Open(new FileStream(filename, FileMode.Open, access), iswriteable));
            }
            if (filename.EndsWith(".dmk"))
            {
                return(DmkDisk.Open(new FileStream(filename, FileMode.Open, access), iswriteable));
            }
            return(null);
        }