visual-studio - 验证安装目录是否为 FAT
问题描述
我想知道如何设置一种方法来验证安装目录是否为 FAT/FAT32/exFAT/任何没有 USN 日志的 USB。
我找不到任何关于我正在尝试做的事情的文档。我会尝试直接在我的程序中添加一些支持,但是通过检查,它可能会导致问题。
解决方案
首先要做的事情:Visual Studio 设置项目非常有限,您最好寻找一个功能更强大的部署工具/框架:应用程序设置。
仅限 NTFS:这听起来很奇特。现在甚至不可能在 NTFS 以外的任何设备上安装 Windows?来自 superuser.com:“ Windows Vista 和更高版本不会安装在 FAT32 分区上,只能安装在 NTFS 分区上。这可能是由于使用了符号链接(FAT32 不支持)。 ”我不有一个 MSDN 链接供您验证,但我很确定以上内容是正确的。
内置 MSI 功能:MSI 中可能有一个内置属性,将设置为系统驱动器的文件系统。我不熟悉任何此类属性。
自定义操作:如果您使用的是Windows XP,我想您需要一个自定义操作,然后调用WMI或直接通过Win32 API I 来确定文件系统的真正含义。
Win32:带有一些示例模拟代码的答案,用于对文件系统进行 Win32 检查: 确定分区所属的文件系统。用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
推荐阅读
- python - '...' in time(...) 在 python 的 timedate 类中是什么意思?
- python - 带有 oracle CLOB 字段的 Django loaddata 错误
- swift - Swift/SwiftUI - 删除键盘上方的空间
- django - Django 过滤器:SQLite 和 PostgreSQL 过滤结果不同
- java - 当字符串中有“TRT”时,如何将字符串转换为日期
- java - 使用 Spring 的 TestRestTemplate 测试返回泛型类型的端点
- spring - Spring Batch:读取固定宽度文件而不换行
- c# - 使用c#将日期从winform保存到sql数据库
- javascript - 当我点击 Vue.js 中的按钮时,在我最喜欢的页面中显示我的 API
- flutter - 尝试自动裁剪为列表中的数据并将其转换为图像