C# 如何以编程方式将SD卡格式化为FAT32?C

C# 如何以编程方式将SD卡格式化为FAT32?C,c#,format,sd-card,fat32,C#,Format,Sd Card,Fat32,我正在尝试制作一个与guiformat具有相同效果的应用程序,它可以用来重新格式化SD卡/MicroSD,但我很难找到确切的方式 是否有一段简单的代码可以将SD卡格式化为FAT32?这只是一个例子。如果有,我一定是哑巴——我找不到 谢谢:一种方法是连接diskpart。 以下是我的项目中的一些示例代码: 根据应用程序的不同,您可能应该添加一些对diskpart输出的检查,以查看操作是否成功 using System.Diagnostics; bool formatSdCard(

我正在尝试制作一个与guiformat具有相同效果的应用程序,它可以用来重新格式化SD卡/MicroSD,但我很难找到确切的方式

是否有一段简单的代码可以将SD卡格式化为FAT32?这只是一个例子。如果有,我一定是哑巴——我找不到


谢谢:

一种方法是连接diskpart。 以下是我的项目中的一些示例代码: 根据应用程序的不同,您可能应该添加一些对diskpart输出的检查,以查看操作是否成功

using System.Diagnostics;    
    
bool formatSdCard()
{
    bool foundDisk = false;

    Console.WriteLine("Formatting SD card...");

    Process p = new Process();
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
    p.StartInfo.RedirectStandardOutput = true;
    p.StartInfo.FileName = @"C:\Windows\System32\diskpart.exe";
    p.StartInfo.RedirectStandardInput = true;
    p.Start();
    int diskNum = 1;
    while (!foundDisk) {
        p.StandardInput.WriteLine("select disk " + diskNum.ToString());
        p.StandardInput.WriteLine("detail disk");

        while (true)
        {
            string output = p.StandardOutput.ReadLine();
            Console.WriteLine(output);
            if (output.Contains("Generic Ultra HS-SD/MMC USB Device"))    // Replace this string to match your device
            {
                foundDisk = true;
                Console.WriteLine("Found disk! #" + diskNum.ToString());
            }
            if (output.Contains("Disk ID"))
            {
                break;
            }

        }

        diskNum++;

        if(diskNum > 10)
        {
            Console.WriteLine("Cannot find SD Card!");
            return false;
        }
    }


    p.StandardInput.WriteLine("CLEAN");
    p.StandardInput.WriteLine("CREATE PARTITION EXTENDED");
    p.StandardInput.WriteLine("CREATE PARTITION LOGICAL");
    p.StandardInput.WriteLine("FORMAT FS=FAT32 QUICK");

    p.StandardInput.WriteLine("EXIT");
    p.WaitForExit();

    Console.WriteLine("SD Format OK!");

    return true;
}

那么,这将完全格式化SD卡或可移动磁盘,并将其重新格式化为FAT32?或者我遗漏了什么?我可以把FS=FAT32行改成FS=NTFS吗?这样就可以正常工作了?还是我错了?如何获取某个磁盘的磁盘号?e、 g.在e:和D:中,哪一个是1或2?请参见此行:if output.contains通用Ultra HS-SD/MMC USB设备//替换此字符串以匹配设备将标识符字符串设置为SD卡读卡器的名称。当然,这只有在您始终使用与我的应用程序相同的SD卡读卡器型号时才能正常工作。如果您需要匹配特定的驱动器盘符,您可能会在详细磁盘输出的最后一部分进行过滤,包括盘符在内的卷信息将被写入。Hmm。好的,谢谢:还有一些解决方案,包括一个简单的,通过编程使用FORMAT.COM命令行可执行文件的解决方案