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

问题描述

我正在尝试制作一个与“ 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;
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...