Pessoal,
Tenho os dois seguintes trecho de código:
Código 1:
.
.
.
// Nome do Arquivo
String ^path = "C:\\ArquivosRecentes.xml";
FileStream ^fs;
try{
if( !File::Exists( path ) ){
// Create the file.
FileStream^ fsCreate = File::Create( path );
if ( fsCreate )
delete (IDisposable^)fsCreate;
}
// Get a FileSecurity object that represents the current security settings.
FileSecurity^ fSecurity = File::GetAccessControl(path);
// Remove the FileSystemAccessRule to the security settings.
fSecurity->RemoveAccessRule(gcnew FileSystemAccessRule( "MYDOMAIN\\MyAccount" ,
FileSystemRights::WriteData,
AccessControlType::Allow ) );
// Set the new access settings.
File::SetAccessControl(path, fSecurity);
fs = File::OpenWrite( path );
Encoding^ uniEncoding = gcnew UTF8Encoding(true);
fs->Write( uniEncoding->GetBytes( DADOS ), 0, uniEncoding->GetByteCount( DADOS ) );
fs->Close();
}
catch(Exception^ ex){
MessageBox::Show(ex->Message);
}
finally{
if( fs )
delete (IDisposable^)fs;
}
}
================================================================================================
Código 2:
.
.
.
// Nome do Arquivo
String ^path = "C:\\ArquivosRecentes.xml";
FileStream ^fs;
try{
if( !File::Exists( path ) ){
// Create the file.
FileStream^ fsCreate = File::Create( path );
if( fsCreate )
delete (IDisposable^)fsCreate;
}
FileIOPermission^ fileIOPerm;
fileIOPerm = gcnew FileIOPermission( FileIOPermissionAccess::Write, path );
fileIOPerm->AllFiles = FileIOPermissionAccess::Write;
fs = File::OpenWrite( path );
Encoding^ uniEncoding = gcnew UTF8Encoding(true
);
fs->Write( uniEncoding->GetBytes( DADOS ), 0, uniEncoding->GetByteCount( DADOS ) );
fs->Close();
}
catch(Exception^ ex){
MessageBox::Show(ex->Message);
}
finally{
if ( fs )
delete (IDisposable^)fs;
}
}
Executando ambos os códigos é disparada a seguinte exceção: "
A required privilege is not held by the client " .
Um detalhe é que se eu mudar o
path de "
C:\\ArquivosRecentes.xml " para "
D:\\ArquivosRecentes.xml " a exceção para de ser disparada.
Estou usando o
Windows Vista Home Premium .
Alguém sabe algum modo que eu consiga escrever neste arquivo?
Grato,
Eduardo Miranda