2010-05-18 7 views
1

Nous devons apprendre VB.NET pour le semestre, mon expérience réside principalement avec C# - pas que cela devrait faire une différence pour ce problème particulier. J'ai utilisé à peu près la manière la plus simple d'enregistrer un fichier en utilisant le framework .NET, mais Windows 7 ne me permet pas de sauvegarder le fichier où que ce soit (ou n'importe où que j'ai trouvé). Voici le code que j'utilise pour enregistrer un fichier texte.VB.NET 2008, Windows 7 et enregistrer des fichiers

Dim dialog As FolderBrowserDialog = New FolderBrowserDialog() 
Dim saveLocation As String = dialog.SelectedPath 
... Build up output string ... 
Try 
    ' Try to write the file. 
    My.Computer.FileSystem.WriteAllText(saveLocation, output, False) 
Catch PermissionEx As UnauthorizedAccessException 
    ' We do not have permissions to save in this folder. 
    MessageBox.Show("Do not have permissions to save file to the folder specified. Please try saving somewhere different.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) 
Catch Ex As Exception 
    ' Catch any exceptions that occured when trying to write the file. 
    MessageBox.Show("Writing the file was not successful.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) 
End Try 

Le problème est que cela en utilisant ce code renvoie une UnauthorizedAccessException peu importe où j'essaie d'enregistrer le fichier. J'ai essayé d'exécuter le fichier .exe en tant qu'administrateur et l'EDI en tant qu'administrateur.

Est-ce juste que Windows 7 est surprotecteur? Et si oui, que puis-je faire pour résoudre ce problème? Les exigences indiquent que je peux enregistrer un fichier!

Merci.

Répondre

2

Ce code:

Dim dialog As FolderBrowserDialog = New FolderBrowserDialog() 
Dim saveLocation As String = dialog.SelectedPath 

vous donne l'emplacement d'un dossier . Ensuite, vous essayez d'enregistrer un fichier avec le même nom que le dossier. Au lieu de cela, je suppose que vous voulez enregistrer un fichier dans ce dossier:

Dim saveLocation As String = dialog.SelectedPath 
saveLocation = Path.Combine(saveLocation, "SomeFile.txt") 

Cela va créer un fichier appelé « Somefile.txt » dans le dossier sélectionné.

Alternativement, au lieu d'utiliser FolderBrowserDialog pour choisir un dossier, utilisez SaveFileDialog pour sélectionner le fichier réel à la place.

+0

Comme c'est idiot. Merci! –