哪位会PB的,去帮我看看这个问题,谢谢. 获取文件大小(字节).http://topic.csdn.net/u/20090409/09/129ffe56-8d9c-46fe-aa1f-7b9cdcfa2425.html 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 大概是通过 FindFirstFile这个api获取 WIN32_FIND_DATA结构,从而得到int64的长度值.这个值在WIN32_FIND_DATA中用两个int32的变量来保存的。 我不会pb,但是用c#测试了一下,没有问题。就一个api和一个structrue的定义,pb中实现的难度应该不大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 } }} to jinjazz WIN32_FIND_DATA是多少个参数,你怎么有十几个?我这里只发现十个. OK,搞定,方法为在PB中自己定义结构体,然后使用FindFirstFile.不过要注意结构体的内容,和网上公布的内容有些不一样. 我是反射.Net FrameWork里面的代码出来的。你测试一下你的能不能直接用 sql 2000的一点小问题 一个SQL 想装个sql server 2005但是不知道装什么版本好? 这样的SQL语句怎么写? SQL问题请教 各位大神求救,关于无法启动MSSQLSERVER服务 sql查询数据 信息出现乱码 这sql语句有什么错 关于行值转列值的问题 文本文件中的汉字导入问题 求Sql语句 SQL初学者群
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
}
}
}