使用来遍历文件和目录牛
#region 声明WIN32API函数以及结构 **************************************
[Serializable,
ructLayout
(quential,
CharSet = to
),
stFitMapping(false)]
private struct WIN32_FIND_DATA
{
public int dwFileAttributes;
public int ftCreationTime_dwLowDateTime;
public int ftCreationTime_dwHighDateTime;
public int ftLastAccessTime_dwLowDateTime;
public int ftLastAccessTime_dwHighDateTime;
public int ftLastWriteTime_dwLowDateTime;
public int ftLastWriteTime_dwHighDateTime;
public int nFileSizeHigh;
public int nFileSizeLow;
public int dwReserved0;
public int dwReserved1;
[rshalAs
(ValTStr,
SizeConst = 260)]
public string cFileName;
[rshalAs
(ValTStr,
SizeConst = 14)]
public string cAlternateFileName;
}
[lImport
(\"l\",
CharSet = to,
SetLastError = true)]
private static extern IntPtr FindFirstFile(string pFileName, ref WIN32_FIND_DATA pFindFileData);
[lImport
(\"l\",
CharSet = to,
SetLastError = true)]
private static extern bool FindNextFile(IntPtr hndFindFile, ref WIN32_FIND_DATA lpFindFileData);
[lImport(\"l\", SetLastError = true)]
private static extern bool FindClose(IntPtr hndFindFile);
private static long ToLong( int height , int low)
{
long v = ( uint ) height ;
v = v 0x20;
v = v | ( ( uint )low );
return v;
}
private static void WinIOError(int errorCode, string str)
{
switch (errorCode)
{
case 80:
throw new Exception(\"IO_FileExists :\" + str);
case 0x57:
throw new Exception(\"IOError:\" + MakeHRFromErrorCode(errorCode));
case 0xce:
throw new thTooLongException(\"PathTooLong:\" + str );
case 2:
throw new leNotFoundException(\"FileNotFound:\" + str);
case 3:
throw new rectoryNotFoundException(\"PathNotFound:\" + str);
case 5:
throw new UnauthorizedAccessException(\"UnauthorizedAccess:\" + str);
case 0x20:
throw new Exception(\"IO_SharingViolation:\" + str);
}
throw new Exception(\"IOError:\" + MakeHRFromErrorCode(errorCode));
}
private static int MakeHRFromErrorCode(int errorCode)
{
return (- | errorCode);
}
#endregion
#region 内部代码群 ****************************************************
private static readonly IntPtr INVALID_HANDLE_VALUE = new IntPtr(-1);
/// summary
/// 查找处理的底层句柄
/// /summary
private Ptr intSearchHandler = INVALID_HANDLE_VALUE;
private WIN32_FIND_DATA myData = new WIN32_FIND_DATA();
/// summary
/// 开始搜索标志
而又对自己购买的商品有维权需求 /// /summary
private bool bolStartSearchFlag = false;
/// summary
/// 关闭内部句柄
/// /summary
private void CloseHandler()
{
if (SearchHandler != INVALID_HANDLE_VALUE)
{
FindClose(SearchHandler);
SearchHandler = INVALID_HANDLE_VALUE;
}
}
/// summary
/// 开始搜索
/// /summary
/// returns操作是否成功/returns
private bool StartSearch()
{
bolStartSearchFlag = true;
bolIsEmpty = false;
objCurrentObject = null;
intLastErrorCode = 0;
string strPath = bine(strSearchPath, rSearchPattern);
oseHandler();
intSearchHandler = FindFirstFile(strPath, ref myData);
if (intSearchHandler == INVALID_HANDLE_VALUE)
{
intLastErrorCode = tLastWin32Error();
if (intLastErrorCode == 2)
{
bolIsEmpty = true;
return false;
}
if( lThrowIOException )
WinIOError( intLastErrorCode , strSearchPath);
else
return false;
}
return true;
}
查看本文来源
乌海治疗白癜风医院费用武汉哪里专业治白癜风
肾损伤高血压用什么药效果好
- 上一页:使用来遍历文件和目录覆盖
- 下一页:使用来遍历文件和目录呢
-
丁彦雨航现身野球场训练,为重回巅峰只用了?山东硬汉发出4字感慨
沈阳等待时间4年初27日假消息,就在CBA总冠军落幕之际,济宁女足阵中的顶薪...
2024-09-05
-
你就不要这样一来言爱,不要随意让爱潮泛滥
你就绝不就会轻易言爱,绝不就会可任意让爱潮洪水,绝不就会将人类所最值...
2024-06-29
-
成为“物件人”,有多少身不由己?
近几年常听到“应用软件人”的却说法,寓指就是人在庞大的实用观念机器全...
2024-05-05
-
千万不要随便穿著肉色的衣服…哈哈哈哈狠狠代入了!
以前的宝子们 有不会一如既往地持续保持好心情呢 如果不会也就让 以前的开...
2023-12-21
-
新增5个准入地!2022年法考准入条件地方名单汇总
有更加多乒乓私信追问合合杆菌,关于2022法考调高前提条件地四区有哪些的...
2023-12-16
-
蓝天燃气(605368.SH)发预盈,预计上半年盈利3.2亿元-3.6亿元,同比增加65.75%-8
蓝天燃气(605368.SH)发布公告,公司预估2022年半年度发挥作用归于香港交易所债...
2023-12-10