私は複数のディレクトリのすべてのファイルをコピーすることができますが、私は彼らの中のファイル私がどこからファイルをコピーしているのか、私のターゲットフォルダにファイルを置かないのですか?ここに私のコードは、任意のヘルプは私はMSDNのこのコードを持っていますが、それでも私のプログラムを使用することができません
0
A
答えて
2
ディレクトリをコピーするための方法はありません。あなたができることは、拡張メソッドを使うことです。これを見て持っている - ここでhttp://channel9.msdn.com/Forums/TechOff/257490-How-Copy-directories-in-C/07964d767cc94c3990bb9dfa008a52c8
は完全な例である(ただ、テストされ、それが動作します):
using System;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var di = new DirectoryInfo("C:\\SomeFolder");
di.CopyTo("E:\\SomeFolder", true);
}
}
public static class DirectoryInfoExtensions
{
// Copies all files from one directory to another.
public static void CopyTo(this DirectoryInfo source, string destDirectory, bool recursive)
{
if (source == null)
throw new ArgumentNullException("source");
if (destDirectory == null)
throw new ArgumentNullException("destDirectory");
// If the source doesn't exist, we have to throw an exception.
if (!source.Exists)
throw new DirectoryNotFoundException("Source directory not found: " + source.FullName);
// Compile the target.
DirectoryInfo target = new DirectoryInfo(destDirectory);
// If the target doesn't exist, we create it.
if (!target.Exists)
target.Create();
// Get all files and copy them over.
foreach (FileInfo file in source.GetFiles())
{
file.CopyTo(Path.Combine(target.FullName, file.Name), true);
}
// Return if no recursive call is required.
if (!recursive)
return;
// Do the same for all sub directories.
foreach (DirectoryInfo directory in source.GetDirectories())
{
CopyTo(directory, Path.Combine(target.FullName, directory.Name), recursive);
}
}
}
}
1
を理解されるであろう、これまで
{
string SelectedPath = (string)e.Argument;
string sourceDirName;
string destDirName;
bool copySubDirs;
DirectoryCopy(".", SelectedPath, true);
DirectoryInfo dir = new DirectoryInfo(sourceDirName);
DirectoryInfo[] dirs = dir.GetDirectories();
// If the source directory does not exist, throw an exception.
if (!dir.Exists)
{
throw new DirectoryNotFoundException(
"Source directory does not exist or could not be found: "
+ sourceDirName);
}
// If the destination directory does not exist, create it.
if (!Directory.Exists(destDirName))
{
Directory.CreateDirectory(destDirName);
}
// Get the file contents of the directory to copy.
FileInfo[] files = dir.GetFiles();
foreach (FileInfo file in files)
{
// Create the path to the new copy of the file.
string temppath = Path.Combine(destDirName, file.Name);
// Copy the file.
file.CopyTo(temppath, false);
}
// If copySubDirs is true, copy the subdirectories.
if (copySubDirs)
{
foreach (DirectoryInfo subdir in dirs)
{
// Create the subdirectory.
string temppath = Path.Combine(destDirName, subdir.Name);
// Copy the subdirectories.
DirectoryCopy(subdir.FullName, temppath, copySubDirs);
}
}
}
であるあなたはhttp://msdn.microsoft.com/en-us/library/bb762914.aspxを見て撮影したことがありますか?
1
コピーの前にパスが存在するかどうかを確認してください。それがなければ、それを作成しますか?
string folderPath = Path.GetDirectoryName(path);
if (!Directory.Exists(folderPath))
Directory.CreateDirectory(folderPath);
0
これを行うスマートな方法は、nithins答えのようです。あなたのアプローチを使用すると、FileInfo.Directory情報を使用してファイルのソースを特定し、必要に応じて宛先にこのディレクトリを作成することができます。しかし、nithinsリンクはよりクリーンなソリューションです。
関連する問題
- 1. 私は私が間違っているつもりどこ把握することはできません。このコードのエラーを持っているPROCEDUREエラー
- 2. 私は擬似コードを持っていますが、まだコード化することはできません
- 3. 私は.pfxファイルを持っており、それを使用することができません
- 4. 私はJavaプログラムを書いて、私はそれをコンパイルすることができましたが、私は このプログラムを実行する場合、エラーが表示されます、私はそれをコンパイルすることができますが、私は
- 5. は、これは私がこれまで持っているものである
- 6. CSS3トランジションは、私は、このCSSコードとどの私はこれが私のCSSでそれを</p> <p>を修正することができますので、その誰もが間違っているものを私に言うことができる私は移行を持って自分のスタイルに追加しますが、それは動作しませんを持って
- 7. 私のプログラムはそれが負の数を使用していることを認識していません
- 8. 私は、次のコードを持っていますが、できません(それもます。installutilで行うことができますが、それは手動で行うことができない)私はプログラム的にサービスをインストールする必要がありますC#の
- 9. Javascript。シンプルなコードですが、ブラウザに読み込まれません。私は、誰もがこれで間違っているものを私を助けて、なぜそのがウェブbroserにロードすることはできません
- 10. こんにちは、私はこのコードを持って、それが動作しませんUITabBarItem
- 11. は、プログラム私はでこのコードを持っている自己
- 12. )これは私が持っているコードですjqueryの
- 13. 使用するEntityManagerは、私はこのコードを持っていますが、動作しません
- 14. 私は私のプログラムを実行することができません
- 15. 私はスタティックライブラリを使用することができません
- 16. AngularJsは、誰もが、私はこのコードを持っているplease.I助けることができるオブジェクト
- 17. 私はRedditのAPIを使ってログインすることができません
- 18. Mavenは私がそれをデバッグすることができてもプロジェクトをコンパイルできません
- 19. typescriptですが、私はこのコードを持っているインタフェース
- 20. は私がこれまでのところ、このコードを持っているので、
- 21. 私の配列の値に、それが動作していてもアクセスすることができません
- 22. コンパイラフラグは、私は、これは簡単なものであると思いますが、私はそれを把握することはできません
- 23. 私はこれは私がこれまで持っているものであるアンドロイドで
- 24. は、これは私が持っているコードです
- 25. 私は、コードでこれまでのところ持っているスクリプト
- 26. jQueryのは、これは私がこれまで持っているhtmlです
- 27. 誰かがこのエラーメッセージで私を助けることができますか?私はそれを理解することはできません
- 28. Pythonは - だから私はこのコードを持っている...私は一体これと間違っているかわからないが、私は全くそれを把握することはできませんGPSの経度と緯度
- 29. と転送は、私がここにこのコードを持って
- 30. 私はバグを持っていることが、Javaの機能を持っていると私はそれを
このコードを使用してエラーが発生すると、system.IO.directoryinfoにcopytoの定義が含まれていません – bobthemac
この[MSDN記事](http://msdn.microsoft.com/en-us/library/bb383977)を参照してください。 aspx)の拡張メソッドの使い方について説明します。 – Mayank