3

DotNetZip で zip ファイル/フォルダーを作成しました。そのファイルを元のディレクトリ/フォルダーから別のフォルダー (マイ ドキュメントなど) に移動しようとしています。これまでのところ、次のことを行っていますが、パスの一部が見つからないというエラーが表示されます。

private static void Move()
{
    try
    {
        Directory.Move(@"Debug\Settings.zip", IO.Paths.Enviroment.MyDocuments);
    }
    catch(Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
}

更新:だから私はそれを少しいじって笑ったのは、それを修正したからではなく、それが奇妙だからです。と の両方を使用しFile.Move()Directory.Move()に変更both.Move(@"Debug\Settings.zip",...);するboth.Move(@"Settings.zip",...);と、次のエラーが表示されますCannot create a file when that file already exists.

ディレクトリ ツリー

4

4 に答える 4

2

ファイルの移動に使用するのは奇妙に思えるかもしれませんがDirectory.Move(私ならFile.Move代わりに使用します)、Jean-Philippe Leclercはそれが機能することを指摘しています。

問題はパスにありますDebug\Settings.zip

すべての相対パスは、作業ディレクトリからの相対パスです。デフォルトでは、作業ディレクトリはアセンブリ (プログラム) が実行されるフォルダーであり、デバッグ中はbin\Debugプロジェクトのサブフォルダーになります。したがって、パスDebug\Settings.zipは次のようなパスに展開されます。

C:\..\MyProject\bin\Debug\Debug\Settings.zip

これはおそらくあなたが意図したものではありません。あなたはただを意味しました"Settings.zip"

それがZIPであるという事実は無関係です。

于 2013-02-22T01:35:01.387 に答える
1

could not find part of the path- エラーはRelative Path、ファイルへのSettings.Zipパスが有効ではないようです!


を使用する必要がありFile.MoveDirectory.Moveディレクトリのコンテンツ全体を別のフォルダーに移動します。

File.Move: 指定した場所にのみファイルを移動します

private static void Move()
        {
            try
            {
                File.Move(@"Debug\Settings.zip", System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
于 2013-02-22T01:36:54.543 に答える
1

MyDocuments パスを取得するには、System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)を使用します。

于 2013-02-22T01:37:40.997 に答える
0

修理済み!問題は、最初にある"Debug\Settings.zip"べきだった"Settings.zip"、または@"Settings.zip"最終的に宛先がそうではないはずでしたがSystem.IO.File.Move(@"Settings.zip", System.Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop));System.IO.File.Move(@"Settings.zip", System.Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop) + @"\Settings.zip");基本的に、宛先文字列の最後にファイル名とファイルの拡張子を追加します。

于 2013-02-22T07:14:43.000 に答える