How do I: use CreateDirectoryEx to create a Directory 300+ characters? - Using Unicode Build
Messages   Related Types
This message was discovered on microsoft.public.dotnet.languages.vc.
Responses highlighted in red are from those people who are likely to be able to contribute good, authoratitive information to this discussion. They include Microsoft employees, MVP's and others who IMHO contribute well to these kinds of discussions.
Post a new message to this list...

Russell Mangel
Hi, I am trying to create a directory on my disk wihich is 300+ characters
long.
My program does not work, can you make it go? I am using VS2003 C++.

Russell Mangel, Las Vegas, NV

// I have specified Unicode Character set in project settings
#include "stdafx.h"
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
// Assumes that you have an existing directory: C:\\A
LPCTSTR lpTemplateDirectory= _T("C:\\A");

// This is a 300+ Character Directory, ANSI is limited to 248 chars
// I think I have the \\?\ in the right place?
LPCTSTR lpNewDirectory =
_T("\\?\C:\\A\\0000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000-000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000-00000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000");

if(CreateDirectoryEx(lpTemplateDirectory, lpNewDirectory, NULL))
{
printf("Successfully created: %s", lpNewDirectory);
}
else
{
printf("Error: %d", GetLastError());
}
return 0;
}

Reply to this message...
 
    
Ronald Laeremans [MSFT] (VIP)
Hi Russel,

I think you are misunderstanding 1 critical piece: each component of the
path can still only be 255 characters.

This is from the MDSN doc topic:
"The Unicode versions of several functions permit a maximum path length of
32,767 characters, composed of components up to 255 characters in length."

In addition, you are forgetting to escape the first double-\.

You would need:

\\\\?\\C:\\A\\.

Ronald Laeremans
Visual C++ team

"Russell Mangel" <Click here to reveal e-mail address> wrote in message
news:uUWS%Click here to reveal e-mail address...
[Original message clipped]

Reply to this message...
 
 




Ad
MBR BootFX
Best-of-breed application framework for .NET projects, developed by Matthew Baxter-Reynolds and MBR IT
 
 Copyright © Matthew Baxter-Reynolds 2001-2008. '.NET 247 Software Development Services' is a trading style of MBR IT Solutions Ltd.
Contact Us - Terms of Use - Privacy Policy - www.dotnet247.com