Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
CFStringRef fullpath = CFURLCopyFileSystemPath(fullurl, kCFURLPOSIXPathStyle);
void FooExpFilter::ExportToStream(
IPMStream* stream, IDocument* doc, IPMUnknown* targetboss,
const PMString& formatName, UIFlags uiFlags)
{
IDFile outputFile;
InterfacePtr<IFileStreamData> fileData(stream, IID_IFILESTREAMDATA);
outputFile = fileData->GetSysFile();
#ifdef WINDOWS
SDKFileHelper fh(outputFile);
PMString pathID = fh.GetPath();
#endif
#ifdef MACINTOSH
FSSpec fsSpec;
PMString pathID;
OSErr err = FileUtils::IDFileToFSSpec(outputFile, fsSpec);
if (err == noErr) {
FSRef fsRef;
err = MacFileUtils::FSSpecToFSRef(fsSpec, fsRef);
if (err == noErr) {
CFURLRef appURL = ::CFURLCreateFromFSRef(NULL, &fsRef);
CFStringRef app_str = ::CFURLCopyFileSystemPath(appURL, kCFURLPOSIXPathStyle);
if (app_str) {
pathID.SetCFString(app_str);
::CFRelease(app_str);
}
if (appURL) ::CFRelease(appURL);
}
}
#endif
WideString pathWID(pathID);
std::string xID;
StringUtils::ConvertWideStringToUTF8 (pathWID, xID);
IDFile outputFile;
InterfacePtr<IFileStreamData> fileData(stream, IID_IFILESTREAMDATA);
outputFile = fileData->GetSysFile();
#ifdef WINDOWS
SDKFileHelper fh(outputFile);
PMString pathID = fh.GetPath();
WideString pathWID(pathID);
std::string xfinal;
StringUtils::ConvertWideStringToUTF8 (pathWID, xfinal);
#endif
#ifdef MACINTOSH
PMString pathJ = FileUtils::SysFileToFileURL(outputFile);
WideString pathWJ(pathJ);
std::string xj;
StringUtils::ConvertWideStringToUTF8 (pathWJ, xj);
std::string xfinal = FileUtils::FileURLToPosixPath(xj);
#endif
О том как я имя файла из С++ в Java передавал