C# 동적 unlha32 호출dll 압축 풀기 Lha 접미사 패키지 공유
public class LhaUtity
{
/// DLL
[DllImport("unlha32")]
private static extern UInt16 UnlhaGetVersion();
///
/// ' DLL
///
///
[DllImport("unlha32")]
private static extern Boolean UnlhaGetRunning();
///
/// '
///
///
///
///
[DllImport("unlha32")]
private static extern Boolean UnlhaCheckArchive(String szFileName, Int32 iMode);
///
///
///
///
///
///
///
///
[DllImport("unlha32")]
private static extern int Unlha(int hwnd, string szCmdLine, string szOutput, int dwSize);
///
///
///
///
///
///
public static bool UnCompress(string archiveFile, string extractDir,bool isDeleteFile)
{
string extractFullPath = string.Empty;
string startPath = AppDomain.CurrentDomain.BaseDirectory;
if (!System.IO.File.Exists(archiveFile))
{
//
throw new Exception(string.Format(" {0} ", archiveFile));
}
try
{
UInt16 ver = LhaUtity.UnlhaGetVersion();
}
catch (Exception ex)
{
throw new Exception(" Unlha32.dll ");
}
if (UnlhaGetRunning())
{
throw new Exception("DLL ");
}
if (!UnlhaCheckArchive(archiveFile, 0))
{
throw new Exception(" ");
}
//
if (string.IsNullOrEmpty(extractDir))
{
extractFullPath =string.Format(@"{0}{1}\", startPath,archiveFile.Substring(archiveFile.LastIndexOf("\\")+1,archiveFile.IndexOf(".lha")-1-archiveFile.LastIndexOf("\\")));
}
else
{
extractFullPath = extractDir;
}
if (!System.IO.Directory.Exists(extractFullPath))
{
System.IO.Directory.CreateDirectory(extractFullPath);
}
int ret = Unlha(0, string.Format("x \"{0}\" \"{1}\"", archiveFile, extractFullPath), null, 0);
if (ret != 0)
{
if (ret == 32800)
{
throw new Exception(" ");
}
else
{
throw new Exception(" ");
}
}
else
{
if (isDeleteFile)
{
System.IO.File.Delete(archiveFile);
}
return true;
}
}
}
프로젝트에서 압축을 풀 수 있는 이런 유형의 파일을 필요로 하기 때문에 손을 댈 수가 없다. 인터넷에서 자료를 보면 일본에서 자주 사용하는 압축 알고리즘 중 하나라는 것을 알 수 있다.
많은 자료를 찾았지만 가방을 풀 방법이 없었고,
나중에 이 dll를 찾으면 가방을 풀 수 있어요.
근데 인터넷에 있는 코드가 다 VB나 C예요.
직접 C# 버전으로 작성한 경우에만 C#에서 동적 링크 라이브러리를 호출하더라도
먼저 인터넷에서 이 dll을 다운로드한 다음에 이 DLL을 C:\Windows\System32 디렉터리에 놓으세요
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.