本文整理汇总了C++中FSFindFolder函数的典型用法代码示例。如果您正苦于以下问题:C++ FSFindFolder函数的具体用法?C++ FSFindFolder怎么用?C++ FSFindFolder使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了FSFindFolder函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: strdup
char *Bgethomedir(void)
{
#ifdef _WIN32
TCHAR appdata[MAX_PATH];
if (SUCCEEDED(SHGetSpecialFolderPathA(NULL, appdata, CSIDL_APPDATA, FALSE)))
return strdup(appdata);
return NULL;
#elif defined __APPLE__
FSRef ref;
CFStringRef str;
CFURLRef base;
char *s;
if (FSFindFolder(kUserDomain, kVolumeRootFolderType, kDontCreateFolder, &ref) < 0) return NULL;
base = CFURLCreateFromFSRef(NULL, &ref);
if (!base) return NULL;
str = CFURLCopyFileSystemPath(base, kCFURLPOSIXPathStyle);
CFRelease(base);
if (!str) return NULL;
s = (char*)CFStringGetCStringPtr(str,CFStringGetSystemEncoding());
if (s) s = strdup(s);
CFRelease(str);
return s;
#else
char *e = getenv("HOME");
if (!e) return NULL;
return strdup(e);
#endif
}
示例2: FSFindFolder
QString QDesktopServices::storageLocation(StandardLocation type)
{
if (type == HomeLocation)
return QDir::homePath();
if (type == TempLocation)
return QDir::tempPath();
short domain = kOnAppropriateDisk;
if (type == DataLocation || type == CacheLocation)
domain = kUserDomain;
// http://developer.apple.com/documentation/Carbon/Reference/Folder_Manager/Reference/reference.html
FSRef ref;
OSErr err = FSFindFolder(domain, translateLocation(type), false, &ref);
if (err)
return QString();
QString path = getFullPath(ref);
if (type == DataLocation || type == CacheLocation) {
if (QCoreApplication::organizationName().isEmpty() == false)
path += QLatin1Char('/') + QCoreApplication::organizationName();
if (QCoreApplication::applicationName().isEmpty() == false)
path += QLatin1Char('/') + QCoreApplication::applicationName();
}
return path;
}
示例3: ProfileOperaPrepare
void ProfileOperaPrepare() // PROFILE_OPERA_PREPARE()
{
FSRef ref;
char path[MAX_PATH];
const char* klient_path = "/klient/opera_profile.txt";
FSFindFolder( kUserDomain, kApplicationSupportFolderType, kDontCreateFolder, &ref );
FSRefMakePath( &ref, (UInt8*)&path, MAX_PATH);
char tmppath[MAX_PATH];
if (!CFStringGetCString(CFBundleGetIdentifier(CFBundleGetMainBundle()), tmppath, MAX_PATH, kCFStringEncodingUTF8)) {
OP_ASSERT(!"Error copying bundleid to string");
return;
}
if (op_strlen(path) + op_strlen(tmppath) + op_strlen(klient_path) + 1 >= MAX_PATH) {
OP_ASSERT(!"profile storage path too long");
return;
}
op_strcat(path, "/");
op_strcat(path, tmppath);
op_strcat(path, klient_path);
s_profile_opera_file = fopen(path,"w+");
}
示例4: getTempDirectory
bfs::path
getTempDirectory()
{
bfs::path tempDir;
FSRef fref;
OSErr err = FSFindFolder(kUserDomain, kTemporaryFolderType,
kCreateFolder, &fref);
if (err == noErr) {
CFURLRef tmpUrl = CFURLCreateFromFSRef(kCFAllocatorSystemDefault,
&fref);
if (tmpUrl != NULL) {
CFStringRef ctmpDir = CFURLCopyFileSystemPath(tmpUrl,
kCFURLPOSIXPathStyle);
tempDir = stringRefToUTF8(ctmpDir);
CFRelease(ctmpDir);
CFRelease(tmpUrl);
} else {
boost::system::error_code ec(errno, boost::system::system_category());
throw bfs::filesystem_error("Can't get temp dir", bfs::path(),
bfs::path(), ec);
}
}
tempDir /= "YahooBrowserPlus";
boost::filesystem::create_directories(tempDir);
return tempDir;
}
示例5: GetFullPathToDesktop
int32 GetFullPathToDesktop(char * fullPath, int32 maxPathLength)
{
int32 error = 0;
if (fullPath == NULL) return kSPBadParameterError;
#if __PIMac__
FSRef fsRef;
error = FSFindFolder(kOnSystemDisk,
kDesktopFolderType,
kDontCreateFolder,
&fsRef);
if (error) return error;
error = FSRefMakePath(&fsRef, (unsigned char*)fullPath, maxPathLength);
strcat(fullPath, "/");
#else
HRESULT hr = SHGetFolderPath( NULL, CSIDL_DESKTOPDIRECTORY, NULL, 0, fullPath );
if (FAILED(hr))
{
strcpy(fullPath, "C:\\");
}
else
{
strcat(fullPath, "\\");
}
#endif
return error;
}
示例6: SHGetSpecialFolderLocation
AnsiString PathUtil::GetUserDirectory() {
AnsiString userDir = "./";
#ifdef __WIN32__
char buffer[MAX_PATH];
buffer[0] = '\0';
LPITEMIDLIST pidl = NULL;
LPMALLOC pMalloc;
if (SUCCEEDED(SHGetMalloc(&pMalloc))) {
SHGetSpecialFolderLocation(NULL, CSIDL_APPDATA, &pidl);
if (pidl) {
SHGetPathFromIDList(pidl, buffer);
}
pMalloc->Free(pidl);
userDir = AnsiString(buffer);
}
#elif __MACOSX__
FSRef fileRef;
OSStatus error = FSFindFolder(kUserDomain, kApplicationSupportFolderType, true, &fileRef);
if (error == noErr) {
char buffer[MAX_PATH];
error = FSRefMakePath(&fileRef, (UInt8 *)buffer, sizeof(buffer));
if (error == noErr)
userDir = buffer;
}
#elif __IPHONEOS__
char path[MAX_PATH];
IOS_GetDataDir(path);
userDir = AnsiString(path);
#endif
return userDir;
}
示例7: Bgethomedir
char *Bgetsupportdir(int global)
{
#ifndef __APPLE__
return Bgethomedir();
#else
#if LOWANG_IOS
return Bgethomedir();
#else
FSRef ref;
CFStringRef str;
CFURLRef base;
char *s;
if (FSFindFolder(global ? kLocalDomain : kUserDomain,
kApplicationSupportFolderType,
kDontCreateFolder, &ref) < 0) return NULL;
base = CFURLCreateFromFSRef(NULL, &ref);
if (!base) return NULL;
str = CFURLCopyFileSystemPath(base, kCFURLPOSIXPathStyle);
CFRelease(base);
if (!str) return NULL;
s = (char*)CFStringGetCStringPtr(str,CFStringGetSystemEncoding());
if (s) s = strdup(s);
CFRelease(str);
return s;
#endif
#endif
}
示例8: CreateStandardAutoExec
void FGameConfigFile::CreateStandardAutoExec(const char *section, bool start)
{
if (!SetSection(section))
{
FString path;
#ifdef __APPLE__
char cpath[PATH_MAX];
FSRef folder;
if (noErr == FSFindFolder(kUserDomain, kDocumentsFolderType, kCreateFolder, &folder) &&
noErr == FSRefMakePath(&folder, (UInt8*)cpath, PATH_MAX))
{
path << cpath << "/" GAME_DIR "/autoexec.cfg";
}
#elif !defined(unix)
path = "$PROGDIR/autoexec.cfg";
#else
path = GetUserFile ("autoexec.cfg");
#endif
SetSection (section, true);
SetValueForKey ("Path", path.GetChars());
}
if (start)
{
MoveSectionToStart(section);
}
}
示例9: LoadFrameworkBundle
OSStatus LoadFrameworkBundle(CFStringRef framework, CFBundleRef
*bundlePtr)
{
OSStatus err;
FSRef frameworksFolderRef;
CFURLRef baseURL;
CFURLRef bundleURL;
if ( bundlePtr == nil ) return( -1 );
*bundlePtr = nil;
baseURL = nil;
bundleURL = nil;
err = FSFindFolder(kOnAppropriateDisk, kFrameworksFolderType, true,
&frameworksFolderRef);
if (err == noErr) {
baseURL = CFURLCreateFromFSRef(kCFAllocatorSystemDefault,
&frameworksFolderRef);
if (baseURL == nil) {
err = coreFoundationUnknownErr;
}
}
if (err == noErr) {
bundleURL =
CFURLCreateCopyAppendingPathComponent(kCFAllocatorSystemDefault, baseURL,
framework, false);
if (bundleURL == nil) {
err = coreFoundationUnknownErr;
}
}
if (err == noErr) {
*bundlePtr = CFBundleCreate(kCFAllocatorSystemDefault, bundleURL);
if (*bundlePtr == nil) {
err = coreFoundationUnknownErr;
}
}
if (err == noErr) {
if ( ! CFBundleLoadExecutable( *bundlePtr ) ) {
err = coreFoundationUnknownErr;
}
}
// Clean up.
if (err != noErr && *bundlePtr != nil) {
CFRelease(*bundlePtr);
*bundlePtr = nil;
}
if (bundleURL != nil) {
CFRelease(bundleURL);
}
if (baseURL != nil) {
CFRelease(baseURL);
}
return err;
}
示例10: PathForFolderType
static void PathForFolderType( char dir[PATH_MAX], OSType folderType )
{
FSRef fs;
if( FSFindFolder(kUserDomain, folderType, kDontCreateFolder, &fs) )
FAIL_M( ssprintf("FSFindFolder(%lu) failed.", folderType) );
if( FSRefMakePath(&fs, (UInt8 *)dir, PATH_MAX) )
FAIL_M( "FSRefMakePath() failed." );
}
示例11: LoadFrameworkBundle
OSStatus LoadFrameworkBundle(SInt16 folderLocation,CFStringRef framework, CFBundleRef *bundlePtr)
{
OSStatus err;
FSRef frameworksFolderRef;
CFURLRef baseURL;
CFURLRef bundleURL;
*bundlePtr = nil;
baseURL = nil;
bundleURL = nil;
err = FSFindFolder(folderLocation, kFrameworksFolderType, true, &frameworksFolderRef);
if (err == noErr) {
baseURL = CFURLCreateFromFSRef(kCFAllocatorSystemDefault, &frameworksFolderRef);
if (baseURL == nil) {
err = coreFoundationUnknownErr;
}
}
if (err == noErr) {
bundleURL = CFURLCreateCopyAppendingPathComponent(kCFAllocatorSystemDefault, baseURL, framework, false);
if (bundleURL == nil) {
err = coreFoundationUnknownErr;
}
}
if (err == noErr) {
*bundlePtr = CFBundleCreate(kCFAllocatorSystemDefault, bundleURL);
if (*bundlePtr == nil) {
err = coreFoundationUnknownErr;
}
}
if (err == noErr) {
if ( ! CFBundleLoadExecutable( *bundlePtr ) ) {
err = coreFoundationUnknownErr;
}
}
// Clean up.
if (err != noErr && *bundlePtr != nil) {
CFRelease(*bundlePtr);
*bundlePtr = nil;
}
if (bundleURL != nil) {
CFRelease(bundleURL);
}
if (baseURL != nil) {
CFRelease(baseURL);
}
#ifdef JMMDEBUG
fprintf(stderr,"\nsystem location %i error %i",folderLocation,err);
#endif
return err;
}
示例12: CFQBundleCreateFromFrameworkName
extern pascal OSStatus CFQBundleCreateFromFrameworkName(CFStringRef frameworkName,
CFBundleRef *bundlePtr)
// See comment in header.
{
OSStatus err;
FSRef frameworksFolderRef;
CFURLRef baseURL;
CFURLRef bundleURL;
assert(frameworkName != NULL);
assert( bundlePtr != NULL);
assert(*bundlePtr == NULL);
*bundlePtr = NULL;
baseURL = NULL;
bundleURL = NULL;
// Find the frameworks folder and create a URL for it.
err = FSFindFolder(kOnAppropriateDisk, kFrameworksFolderType, true, &frameworksFolderRef);
if (err == noErr) {
baseURL = CFURLCreateFromFSRef(kCFAllocatorSystemDefault, &frameworksFolderRef);
err = CFQError(baseURL);
}
// Append the name of the framework to the URL.
if (err == noErr) {
bundleURL = CFURLCreateCopyAppendingPathComponent(kCFAllocatorSystemDefault, baseURL, frameworkName, false);
err = CFQError(bundleURL);
}
// Create a bundle based on that URL and load the bundle into memory.
if (err == noErr) {
*bundlePtr = CFBundleCreate(kCFAllocatorSystemDefault, bundleURL);
err = CFQError(*bundlePtr);
}
if (err == noErr) {
err = CFQErrorBoolean( CFBundleLoadExecutable( *bundlePtr ) );
}
// Clean up.
if (err != noErr) {
CFQRelease(*bundlePtr);
*bundlePtr = NULL;
}
CFQRelease(bundleURL);
CFQRelease(baseURL);
assert( (err == noErr) == (*bundlePtr != NULL) );
return err;
}
示例13: RTDECL
RTDECL(int) RTPathUserDocuments(char *pszPath, size_t cchPath)
{
/*
* Validate input
*/
AssertPtrReturn(pszPath, VERR_INVALID_POINTER);
AssertReturn(cchPath, VERR_INVALID_PARAMETER);
/*
* Try NSSystemDirectories first since that works for directories that doesn't exist.
*/
int rc = VERR_PATH_NOT_FOUND;
NSSearchPathEnumerationState EnmState = NSStartSearchPathEnumeration(NSDocumentDirectory, NSUserDomainMask);
if (EnmState != 0)
{
char szTmp[PATH_MAX];
szTmp[0] = szTmp[PATH_MAX - 1] = '\0';
EnmState = NSGetNextSearchPathEnumeration(EnmState, szTmp);
if (EnmState != 0)
{
size_t cchTmp = strlen(szTmp);
if (cchTmp >= cchPath)
return VERR_BUFFER_OVERFLOW;
if (szTmp[0] == '~' && szTmp[1] == '/')
{
/* Expand tilde. */
rc = RTPathUserHome(pszPath, cchPath - cchTmp + 2);
if (RT_FAILURE(rc))
return rc;
rc = RTPathAppend(pszPath, cchPath, &szTmp[2]);
}
else
rc = RTStrCopy(pszPath, cchPath, szTmp);
return rc;
}
}
#ifdef IPRT_USE_CORE_SERVICE_FOR_USER_DOCUMENTS
/*
* Fall back on FSFindFolder in case the above should fail...
*/
FSRef ref;
OSErr err = FSFindFolder(kOnAppropriateDisk, kDocumentsFolderType, false /* createFolder */, &ref);
if (err == noErr)
{
err = FSRefMakePath(&ref, (UInt8*)pszPath, cchPath);
if (err == noErr)
return VINF_SUCCESS;
}
#endif
Assert(RT_FAILURE_NP(rc));
return rc;
}
示例14: GetMacFolder
static std::string GetMacFolder(OSType folderType, const char* errorMsg) {
std::string ret;
FSRef ref;
char path[PATH_MAX];
OSStatus err = FSFindFolder( kUserDomain, folderType, kCreateFolder, &ref );
if (err != noErr) {
throw std::runtime_error(errorMsg);
}
FSRefMakePath( &ref, (UInt8*)&path, PATH_MAX );
ret = path;
return ret;
}
示例15: GetLogsDirectory
RString CrashHandler::GetLogsDirectory()
{
FSRef fs;
char dir[PATH_MAX];
if( FSFindFolder(kUserDomain, kDomainLibraryFolderType, kDontCreateFolder, &fs) ||
FSRefMakePath(&fs, (UInt8 *)dir, PATH_MAX) )
{
return "/tmp";
}
return RString( dir ) + "/Logs/" PRODUCT_ID;
}