我想知道如何设置一种方法来验证安装目录是FAT / FAT32 / exFAT /没有USB日记帐的任何USB。
我找不到我想要做的任何文档。我会尝试在程序中直接添加一些支持,但是通过检查可能会导致问题。
答案 0 :(得分:0)
第一件事 :Visual Studio安装项目非常有限,您最好寻找功能更强大的部署工具/框架: {{3 }} 。
仅NTFS :听起来很奇怪。现在,除了NTFS之外,甚至不可能在其他任何设备上安装Windows吗? Application setup:“ Windows Vista和更高版本 不会安装在FAT32分区上,而只能安装在NTFS分区上。这可能是由于使用符号链接(在FAT32中不受支持)。“我没有MSDN链接供您验证,但我可以肯定以上内容是正确的。
内置MSI功能 :MSI中可能有一个内置属性,它将被设置为系统驱动器的文件系统。我不熟悉任何此类属性。
自定义操作 :如果您使用的是 Windows XP ,我想您需要自定义操作,然后再调用 WMI 或直接通过 Win32 AP I来确定文件系统的真正含义。
Win32 :一个带有文件系统Win32检查的样例代码的答案: From superuser.com 。内联版本已通过VS2017 C ++控制台项目测试:
#include "stdafx.h"
#include "Windows.h"
#define WIN32_LEAN_AND_MEAN // Exclude rarely used stuff from Windows.h (Crypto stuff?)
int main()
{
WCHAR FSType[512];
if (GetVolumeInformationW(L"C:\\", NULL, 0, NULL, NULL, NULL, FSType, ARRAYSIZE(FSType))) {
MessageBox(NULL, FSType, L"File System:", MB_OK);
// TEXT("File System:") instead of L"File System:" if need be?
}
}
WMI :您应该能够从Win32_LogicalDisk
获取信息:
SELECT FileSystem FROM Win32_LogicalDisk WHERE DeviceID='C:'
FileSystemObject :我忘记了可以使用COM脚本运行时:
Set fso = CreateObject("Scripting.FileSystemObject")
Set drive = fso.GetDrive(fso.GetDriveName("C:"))
MsgBox drive.FileSystem