1

ファイルへの保存には 2 つの形式があります。

1。コード内にパスを保持します。

二。ユーザーからパスを取得します。

コードにパスを保存すると、保存に成功しました。ユーザーから取得すると(コードに保持したのと同じパス)、次のエラーが発生します。

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));
    }
}

何が問題なのですか?

4

1 に答える 1

1

次の行にエラーが見つかりました。

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

基本的にファイルではなくフォルダで保存するので落ちました。

私はこれを次のように変更しました:

SaveFile(fileDialog.FileName);
于 2013-03-12T07:35:54.937 に答える