2009-06-12 10 views
2

私は以下のような状況があります。プログラムでローカルtfsコンテンツを削除する方法?

TFSを使用してプログラムで一時的なワークスペースを作成します。私はそれを私のローカルマシン上のスポットにマップして、チェックイン/チェックアウトファイルができるようにします。ワークスペースを介したローカルドライブへのマッピングは、ファイル構造を作成するものです。作成したワークスペースオブジェクトを通じてマッピングを削除する方法は何ですか?

Iveは以下を試みました。

WorkingFolder tempFolder = workspace.getWorkingFolderForServerItem(serverItem); 
workspace.DeleteMapping(tempFolder); 

私が作るtempFolderオブジェクトは正しいローカルマッピングと正しいサーバーマッピングを保持しています。私はそれがローカルコンテンツを削除することができないようだ。これはほとんど正しいのですか、まったく違うものを提案していますか?

答えて

3

TFSでは、ファイルをローカルに削除し、もはやそれらがないことをサーバーに知らせるのは、ファイルをチェンジセット1(つまり、それらが存在する前)に置くことです。私はいくつかのより多くのこの概念を説明し、次のブログ記事を参照してください

workspace.Get(
    new string[] {"C:\\LocalPath"}, 
    new ChangesetVersionSpec(1), 
    RecursionType.Full, 
    GetOptions.None); 

:コードでのようなものになるでしょう、そのワークスペースがちょうど一時的なものであれば、言っ

もう作業空間をやる必要はありません.Delete()とそれに続く伝統的なファイルの削除は、完全に良い方法です。あなたの周りのワークスペースを維持しようとしていたとしても問題になる可能性があります(TFSは、あなたがそうでないと言わない限り、それらのファイルはあなたのローカルワークスペースに残っていると思うので)

1

ワークスペースを介したローカルドライブへのマッピングがファイル構造を作成するためです。

あなたはこれが間違っていると思います。ローカルフォルダ(およびファイル)は、マッピングが作成された後(チームエクスプローラのGUI、「tf.exe get」など)からgetを実行する場合にのみ作成されます。

ワークスペースマッピングを削除したら、ファイルとフォルダを自分で削除するコードを作成する必要があります。

+0

ローカルコンテンツが実際にプルダウン。 – maleki

0

リチャードのおかげで、私は作業領域からファイルを削除しようとしなかった。

考える:助けを

File.setAttributes(tempFolder.LocalItem, FileAttributes.normal)//Get rid of read-only 
File.Delete(tempFolder.LocalItem); 

感謝を:

WorkingFolder tempFolder = workspace.getWorkingFolderForServerItem(serverItem); 

私がやってしまいました!

関連する問題