1,077
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Runtime.InteropServices;
namespace ConsoleApplication16
{
class Program
{
[Serializable, StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto), BestFitMapping(false)]
internal class WIN32_FIND_DATA
{
internal int dwFileAttributes;
internal int ftCreationTime_dwLowDateTime;
internal int ftCreationTime_dwHighDateTime;
internal int ftLastAccessTime_dwLowDateTime;
internal int ftLastAccessTime_dwHighDateTime;
internal int ftLastWriteTime_dwLowDateTime;
internal int ftLastWriteTime_dwHighDateTime;
internal int nFileSizeHigh;
internal int nFileSizeLow;
internal int dwReserved0;
internal int dwReserved1;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
internal string cFileName;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)]
internal string cAlternateFileName;
}
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
internal static extern int FindFirstFile(string fileName, [In, Out] WIN32_FIND_DATA data);
static void Main(string[] args)
{
WIN32_FIND_DATA win_find_data = new WIN32_FIND_DATA();
FindFirstFile(@"\\10.1.3.252\sqlbak\dbMediaImport.bak", win_find_data);
long size = (long)win_find_data.nFileSizeHigh * 4294967296 + win_find_data.nFileSizeLow;
double sizeG = size * 1.0 / 1024 / 1024 / 1024;
//这里得到dbMediaImport.bak的文件大小是5,600,615,936字节,大约5.21G
}
}
}