yo uso el siguiente código para obtener directorios especialesconseguir mis documentos de ruta de la carpeta en Delphi
uses
ActiveX, ShlObj;
{...}
procedure TForm1.Button1Click(Sender: TObject);
// Replace CSIDL_HISTORY with the constants below
var
Allocator: IMalloc;
SpecialDir: PItemIdList;
FBuf: array[0..MAX_PATH] of Char;
PerDir: string;
begin
if SHGetMalloc(Allocator) = NOERROR then
begin
SHGetSpecialFolderLocation(Form1.Handle, CSIDL_PERSONAL, SpecialDir);
SHGetPathFromIDList(SpecialDir, @FBuf[0]);
Allocator.Free(SpecialDir);
ShowMessage(string(FBuf));
end;
end;
Y ahora quiero obtener la ruta mis documentos así que uso mydocfolderpath: = cadena (FBuf) + ' \ Documents 'y creo que funciona bien pero mi duda es esta, la ruta de mydocuments en todas las PC con Windows (carpeta personal/documentos) puede el usuario cambiar esta estructura y hacer mi carpeta de documentos en cualquier otro lugar (por ejemplo: c: \ documents) if el usuario puede cambiar la ruta de acceso de una manera adecuada y me gusta saber cuál es el nombre de la carpeta mydocuments (Mis documentos o documentos)
Tenga en cuenta que alguna versión de Windows utilizan localizada nombres de ruta. A menos que esté completamente seguro de qué versión e idioma está ejecutando, nunca agregue un nombre de carpeta "especial" como una constante de cadena en inglés o en cualquier idioma. Puede que no sea el nombre correcto en el sistema de destino. Siempre use uno de los CSIDL_ específicos o su equivalente más nuevo. –