看來,典型的.Net訪問文件的方式不會考慮特殊字符。我最初的答案是假設文件名是一個空格,但我現在看到你打算將它作爲Alt + 255字符。以下是使用Win32 API打開文件的示例控制檯應用程序:
class Program
{
public const UInt32 GENERIC_ALL = 0x10000000;
public const UInt32 GENERIC_READ = 0x80000000;
public const UInt32 GENERIC_WRITE = 0x40000000;
public const UInt32 GENERIC_EXECUTE = 0x20000000;
public const UInt32 FILE_SHARE_READ = 0x00000001;
public const UInt32 FILE_SHARE_WRITE = 0x00000002;
public const UInt32 CREATE_ALWAYS = 2;
public const UInt32 CREATE_NEW = 1;
public const UInt32 OPEN_ALWAYS = 4;
public const UInt32 OPEN_EXISTING = 3;
public const UInt32 TRUNCATE_EXISTING = 5;
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
private static extern Microsoft.Win32.SafeHandles.SafeFileHandle CreateFile(string lpFileName, System.UInt32 dwDesiredAccess, System.UInt32 dwShareMode, IntPtr pSecurityAttributes, System.UInt32 dwCreationDisposition, System.UInt32 dwFlagsAndAttributes, IntPtr hTemplateFile);
static void Main(string[] args)
{
Microsoft.Win32.SafeHandles.SafeFileHandle oSafeHandle = CreateFile(@"Path to your folder\ ", GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, IntPtr.Zero, OPEN_EXISTING, 0, IntPtr.Zero);
using (FileStream oFS = new FileStream(oSafeHandle, FileAccess.Read))
{
Console.WriteLine("file was opened");
}
Console.ReadLine();
}
}
我無法在win xp中創建此類文件夾?你是怎麼做到的? – manji 2011-04-05 14:46:39
這不是我,這是雷鳥。 – Alex 2011-04-05 19:49:17
或者你可以使用像Far或Total Commander這樣的文件指揮官。 – Alex 2011-04-05 19:49:40