2013-03-12 15 views
1

我有兩種保存到文件的形式:用filedialog保存路徑訪問被拒絕

一。我在代碼中保留路徑。

二。我得到了用戶的路徑。

當我在代碼中保存路徑時,保存成功。當我從用戶那裏得到(即我一直在代碼相同的路徑)今年秋季,出現以下錯誤:

Access to the path is denied 

這裏我保存功能(兩種方式得出了同樣的功能):

public void SaveFile(string path) 
{ 
    try 
    { 
     XmlSerializer serializer = new XmlSerializer(typeof(List<MyClass>)); 
     TextWriter textWriter = new StreamWriter(path); 
     serializer.Serialize(textWriter, MyList); 
     textWriter.Close(); 
    } 
    catch (Exception e) 
    { 
    } 
} 

從我送到這個功能如下用戶:

public void UserSave() 
{ 
    //Open dialog in the path that i have in the code: 
    fileDialog.InitialDirectory = MyPath; 
    if (fileDialog.ShowDialog() == DialogResult.OK) 
    { 
     SaveFile(Path.GetDirectoryName(fileDialog.FileName)); 
    } 
} 

可能是什麼問題呢?

+0

要快速調試,您應首先對「人人」的權限,你要保存文件的目錄。如果可行,您可以稍後設置所需的權限。 – gaurav 2013-03-12 07:11:53

+1

MyPath是否引用文件夾或文件? – David 2013-03-12 07:28:25

回答

1

我發現了錯誤的下面一行:

SaveFile(Path.GetDirectoryName(fileDialog.FileName)); 

它基本上將其保存爲一個文件夾代替作爲文件,所以它下跌。

我改成了這樣:

SaveFile(fileDialog.FileName); 
+1

謝謝,我有同樣的問題。我在做Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),需要在文件夾路徑後添加一個文件名。 – nardnob 2014-10-07 15:18:48