小编pha*_*ays的帖子

在Windows中查找超过4gb的正确文件大小

我使用这个c ++代码来查找windows中某些文件的文件大小(使用visual studio):

(p_findFileData->nFileSizeHigh * MAXDWORD) + p_findFileData->nFileSizeLow);
Run Code Online (Sandbox Code Playgroud)

如果文件大于4gb,这不会给我正确的文件大小.经过一些研究,我试过:

(p_findFileData->nFileSizeHigh * (MAXDWORD+1)) + p_findFileData->nFileSizeLow); 
Run Code Online (Sandbox Code Playgroud)

当我读到nfilesizehigh和nfilesizelow是文件大小的64位值的32位时,如果filesize值大于32位,我们将maxdword(在我的情况下是0xffffffff)乘以nfilesizehigh.第二个解决方案也没有用,给我的尺寸比它的尺寸小.我再次试过这个:

ULONGLONG FileSize = (FindFileData.nFileSizeHigh * 4294967296) + FindFileData.nFileSizeLow;
Run Code Online (Sandbox Code Playgroud)

它起作用了.我还使用了另一种解决方案来获取文件大小:

 ULONGLONG FileSize = FindFileData.nFileSizeHigh;
 FileSize <<= sizeof( FindFileData.nFileSizeHigh ) *8; 
 FileSize |= FindFileData.nFileSizeLow;
Run Code Online (Sandbox Code Playgroud)

上述解决方案也有效:

我想知道为什么前两个解决方案不起作用,并且如果可能的话也解释最后一个解决方案,因为我想知道代码的内部工作.非常感谢帮助.

c++ windows winapi visual-studio

5
推荐指数
2
解决办法
3619
查看次数

使用正则表达式从字符串中提取单词

我有c#代码,其中我使用命令行运行perl文件并在ac#string中捕获该输出.我想使用正则表达式从该字符串中提取某个单词.我尝试了几种捕获特定单词的方法,但它没有用.

例如:下面的文本是在c#中的字符串中捕获的

CMD.EXE以上面的路径作为当前目录启动.
不支持UNC路径.默认为Windows目录.
初始化.
jsdns jsdnjs wuee uwoqw duwhduwd 9-8 is = COM10
uuwe sodks asjnjx

在上面的代码中我想提取COM10.同样,该值也可以更改为COM12或COM8或COM15.我将始终在文本中使用COM,但后续编号可以更改.

有人可以告诉我如何使用正则表达式.我使用了RegexOptions.Multiline,但我不确定如何去做.此外,如果包含解释,它将是有帮助的.

c# regex string

2
推荐指数
1
解决办法
878
查看次数

标签 统计

c# ×1

c++ ×1

regex ×1

string ×1

visual-studio ×1

winapi ×1

windows ×1