Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从.net获取目录中调用本机代码的文件_C#_.net_Vb.net - Fatal编程技术网

C# 从.net获取目录中调用本机代码的文件

C# 从.net获取目录中调用本机代码的文件,c#,.net,vb.net,C#,.net,Vb.net,我需要调用本机代码来获取目录中的文件。有人知道我可以用什么图书馆来做这个吗?如Andrew所指出的,我不确定您指的是什么类型的“本机”,但您可以使用Windows脚本主机(WSH)(添加引用时称为“COM”选项卡上的“Microsoft脚本运行时”)FileSystemObject: Dim fso = New Scripting.FileSystemObject() For Each file As Scripting.File In fso.GetFolder("c:\").Files

我需要调用本机代码来获取目录中的文件。有人知道我可以用什么图书馆来做这个吗?如Andrew所指出的,我不确定您指的是什么类型的“本机”,但您可以使用Windows脚本主机(WSH)(添加引用时称为“COM”选项卡上的“Microsoft脚本运行时”)
FileSystemObject

Dim fso = New Scripting.FileSystemObject()

For Each file As Scripting.File In fso.GetFolder("c:\").Files
    'do whatever you need here, e.g.:
    MsgBox(file.Path)
Next
您正在寻找和相关的Win32方法-查看详细信息


是一个包含许多PInvoke调用的站点,很可能你也会对其他调用进行罚款。

为什么必须使用本机代码?这似乎是一个非常做作的要求。想解释一下这方面的需要吗?您已经在.NET中了,那么为什么使用内置库会有问题呢?因为在包含500000多个文件的文件夹上使用GetFiles/GetDirectory/EnumerateDirectory/EnumerateFiles时会出现大内存泄漏。当仅使用下面的代码(即应用程序中没有其他代码)时(在这些包含300 GB以上文件的文件夹上),在系统重新启动之前,我会永久丢失1 GB或更多的内存。列表=目录。枚举目录(“F:\\Video”,“*”,SearchOption.AllDirectories)。ToList();我怀疑提问者通过P/Invoke表示Win32 C API意义上的“本机”。从这个意义上讲,WSH不是本地的。