Kaydet (Commit) 24d33367 authored tarafından Thomas Arnhold's avatar Thomas Arnhold

Revert "callcatcher: remove unused TempFile::SetTempNameBaseDirectory from unotools"

This reverts commit 817875a7126b403ab029ca1fa06c9d3297bd24b2.
üst 03ce32c4
...@@ -143,6 +143,17 @@ public: ...@@ -143,6 +143,17 @@ public:
conversion functions of osl. conversion functions of osl.
*/ */
static String CreateTempName( const String* pParent=NULL ); static String CreateTempName( const String* pParent=NULL );
/**
The TempNameBaseDirectory is a subfolder in the folder that is passed as a "physical" file name in the
SetTempNameBaseDirectory method.
This subfolder will be used if a TempFile or TempName is created without a parent name or a parent name
that does not belong to the local file system.
The caller of the SetTempNameBase is responsible for deleting this folder and all temporary files in it.
The return value of both methods is the complete "physical" name of the tempname base folder.
It is not a URL because alle URLs must be "UCB compatible", so there may be no suitable URL at all.
*/
static String SetTempNameBaseDirectory( const String &rBaseName );
}; };
} }
......
...@@ -443,6 +443,47 @@ void TempFile::CloseStream() ...@@ -443,6 +443,47 @@ void TempFile::CloseStream()
} }
} }
String TempFile::SetTempNameBaseDirectory( const String &rBaseName )
{
if( !rBaseName.Len() )
return String();
rtl::OUString aUnqPath( rBaseName );
// remove trailing slash
if ( rBaseName.GetChar( rBaseName.Len() - 1 ) == sal_Unicode( '/' ) )
aUnqPath = rBaseName.Copy( 0, rBaseName.Len() - 1 );
// try to create the directory
sal_Bool bRet = sal_False;
osl::FileBase::RC err = osl::Directory::create( aUnqPath );
if ( err != FileBase::E_None && err != FileBase::E_EXIST )
// perhaps parent(s) don't exist
bRet = ensuredir( aUnqPath );
else
bRet = sal_True;
// failure to create base directory means returning an empty string
rtl::OUString aTmp;
if ( bRet )
{
// append own internal directory
bRet = sal_True;
::rtl::OUString &rTempNameBase_Impl = TempNameBase_Impl::get();
rTempNameBase_Impl = rBaseName;
rTempNameBase_Impl += String( '/' );
TempFile aBase( NULL, sal_True );
if ( aBase.IsValid() )
// use it in case of success
rTempNameBase_Impl = aBase.pImp->aName;
// return system path of used directory
FileBase::getSystemPathFromFileURL( rTempNameBase_Impl, aTmp );
}
return aTmp;
}
} }
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment