因此,我使用ReadFile
從kernel32
讀取文件。這是我的代碼在SetFilePointer
和ReadFile
的幫助下閱讀文件。將字節數組(從讀取文件)轉換爲字符串
public long ReadFileMe(IntPtr filehandle, int startpos, int length, byte[] outdata)
{
IntPtr filea = IntPtr.Zero;
long ntruelen = GetFileSize(filehandle, filea);
int nRequestStart;
uint nRequestLen;
uint nApproxLength;
int a = 0;
if (ntruelen <= -1)
{
return -1;
}
else if (ntruelen == 0)
{
return -2;
}
if (startpos > ntruelen)
{
return -3;
}
else if (length <= 0)
{
return -5;
}
else if (length > ntruelen)
{
return -6;
}
else
{
nRequestStart = startpos;
nRequestLen = (uint)length;
outdata = new byte[nRequestLen - 1];
SetFilePointer(filehandle, (nRequestStart - 1), ref a, 0);
ReadFile(filehandle, outdata, nRequestLen, out nApproxLength, IntPtr.Zero);
return nApproxLength; //just for telling how many bytes are read in this function
}
}
當我使用這個函數時,它可以工作(用於其他目的),所以這段代碼被測試和工作。
但是主要的問題是,我現在需要將函數放入字節的參數outdata
轉換成string
。
我嘗試使用Encoding.Unicode
等(所有的UTF),但它不起作用。
你試過這個:string result = System.Text.Encoding.Default.GetString(outdata);並查看您是否能夠將輸出轉換爲字符串。 – Saravanan
我也曾嘗試過。它沒有給出任何結果。 – newbie
沒有返回參數或參考參數,函數將不會放任何東西... – knaki02