仕事のカタマリにようこそ!  [ ログイン | ユーザ登録 ]
フォーラムから検索

機械用3D-CAD SolidWorks非公認のユーザサイトです
 
 
Web katamari.org
仕事のカタマリ
ホーム リンク集 ダウンロード フォーラム(掲示板) FAQ お問い合わせ









フォーラムニュース: 質問、相談カテゴリに「SolidWorks操作方法」に関するフォーラムを追加しました。(2003/11/27)
いらっしゃい、 ゲストさん. まずはこちら→ ログイン または 登録. 2024/04/28 - 14:42:51
ホーム ヘルプ 検索 ログイン 登録

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: EnterprisePDM内の半透明ファイルについて 前のトピック 次のトピック
ページ: [1] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: EnterprisePDM内の半透明ファイルについて  (閲覧数 5301 回)
QWER
カタマリの王様!?
*****

オフライン

投稿: 164



SolidWorks2011 SP5 x64

プロファイルを見る
EnterprisePDM内の半透明ファイルについて
« 投稿日: 2011/10/20 - 10:10:15 »
引用して返信

お世話になっております、QWERです。

EnterprisePDM上で、
“ローカル上には存在するが、Vault上には存在しない”状態のフォルダ/ファイルは
半透明化されて表示されますが、半透明化したファイルをVB.NETの 「System.IO.Directory.GetFiles」
メソッドで取得しようとするとエラーが発生するようです。
「ローカルキャッシュをクリア」や「最新バージョンの取得」を起動しても、半透明ファイルは消えないので困っております。

(1).このエラーを回避したいのですが、良い方法はありますでしょうか?

また、“ローカル上には存在するが、Vault上には存在しない”状態の
フォルダ/ファイルを削除するプログラムの作成を検討しているのですが、
これらのIndex(?)がどこに保存されているのか分かりません。
試しに"コントロールパネル"-->"インデックスのオプション"-->"詳細設定"-->"再構築"
上記の手順を行ってみましたが、半透明ファイルは消えませんでした。

(2).Indexを削除する方法
(2).半透明ファイルを判別/削除する方法
等ありましたらご教示願います。

以上(1)と(2)について、よろしくお願い致します。


なお、当方の環境は下記の通りです。
------------------------------
Windows7 64Bit
SolidWorks2010 x64
EnterprisePDM 2011 SP3.1
VisualBasic2008 Express Edition
------------------------------
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:EnterprisePDM内の半透明ファイルについて
« 返信 #1 投稿日: 2011/10/20 - 20:20:38 »
引用して返信

QWERさん、こんにちは。


引用:
EnterprisePDM上で、
“ローカル上には存在するが、Vault上には存在しない”状態のフォルダ/ファイルは
半透明化されて表示されますが、半透明化したファイルをVB.NETの 「System.IO.Directory.GetFiles」
メソッドで取得しようとするとエラーが発生するようです。
「ローカルキャッシュをクリア」や「最新バージョンの取得」を起動しても、半透明ファイルは消えないので困っております。

試しにテストプログラムを作って確認したところ
System.IO.Directory.GetFiles でファイル名を取得する事が出来ました。
(ボルトへログインしていなくても問題なくファイル名を取得できます。)
何か別の部分でエラーになっているかもしれませんね。
(フォルダパスが間違っているとか・・・)
ちなみに、コマンドプロンプトでフォルダをDirで表示するとファイルは見えるでしょうか?


引用:
(1).このエラーを回避したいのですが、良い方法はありますでしょうか?

また、“ローカル上には存在するが、Vault上には存在しない”状態の
フォルダ/ファイルを削除するプログラムの作成を検討しているのですが、
これらのIndex(?)がどこに保存されているのか分かりません。
試しに"コントロールパネル"-->"インデックスのオプション"-->"詳細設定"-->"再構築"
上記の手順を行ってみましたが、半透明ファイルは消えませんでした。

ローカルファイルだからというエラーは発生しないと思うので、別の部分での問題として解決しないといけないと思います。
また、ローカルファイルだからと言って、インデックスの様なものは存在しないですね。
(完全なWindowsファイルシステムを利用しています。)
極端に言うと、コマンドプロンプトでDEL [ファイルパス]とすれば削除する事が可能です。
ただし、ローカルファイルか、そうでないかの判断は、EPDMのデータベースにファイルが登録されているかの確認を行わなければわかりません。

逆に言うと、System.IOクラスのメソッドや、コマンドプロンプトのコマンドではローカルファイルを識別する事が不可能です。
(一応、ローカルキャッシュをクリアしてからであれば、見つかったファイルがローカルファイルです。)


と、ここまで書いて質問です。
なぜ、ローカルファイルが気になるほど存在しているのでしょうか?

もしかすると、EPDMアドミンツールのユーザーを右クリックして「設定」ので、
「エクスプローラ」タブにある「ファイルボルトの一部でない読み取り専用ファイルを自動的に削除」がOFFになっていませんか?
これがOFFになっていると、ローカルキャッシュを取得しいて、他のPCでそのファイルを消すとローカルファイルになってしまいます。



引用:
(2).Indexを削除する方法
(2).半透明ファイルを判別/削除する方法
等ありましたらご教示願います。

判別するには、EPDMのAPIでボルト上にファイルが存在するかの確認を行う必要があります。
一応、サンプルのコードを書いておきます。
(参照で「PDMWorks Enterprise 2011 Type Library」を追加する必要があります。)
(Form1にButton1とListView1を追加してください。)
(APIでローカルファイルを取得するメソッド等があるかもしれませんが、サンプルでは単純にファイル取得で確認しています。)
環境は、
WindowsXP 32Bit
SolidWorks2009
EnterprisePDM 2011 SP4.0
VisualBasic2005 Express Edition

Code:

Public Class Form1

    'ボルト名とフォルダパス【利用する環境に書き換えてください】
    Private Const VAULT_NAME As String = "TestVault"
    Private Const TARGET_FOLDER_PATH As String = "C:TestVaultTest"

    'ボルトオブジェクト
    Private pdmVault As EdmLib.IEdmVault11

    ' フォーム起動時
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' ボルトオブジェクトの構築
        pdmVault = New EdmLib.EdmVault5
        If pdmVault.IsLoggedIn = False Then
            Try
                'ログイン
                pdmVault.LoginAuto(VAULT_NAME, Me.Handle)
            Catch ex As Exception
                MessageBox.Show("ERROR!")
                ' End
            End Try
        End If
    End Sub

    'ボタンを押したとき
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim Folder As New System.IO.DirectoryInfo(TARGET_FOLDER_PATH)
        Dim Files() As System.IO.FileInfo = Folder.GetFiles

        ListView1.Items.Clear()
        For Each File As System.IO.FileInfo In Files
            Dim FilePath As String = File.FullName

            ' ボルトに存在するかの確認
            Dim IsInVault As Boolean = True
            Dim pdmFile As EdmLib.IEdmFile5
            pdmFile = pdmVault.GetFileFromPath(FilePath)
            If pdmFile Is Nothing Then
                IsInVault = False
            End If

            ' 隠しファイルの確認(PDMに関係の無いファイルを消さないため)
            Dim IsHidden As Boolean = False
            If CBool(File.Attributes And IO.FileAttributes.Hidden) Then
                IsHidden = True
            End If

            ' ローカルファイルのリストアップ
            If IsInVault = False And IsHidden = False Then
                ListView1.Items.Add(File.Name)
            End If
        Next
    End Sub

End Class

議長に報告する   記録済み
QWER
カタマリの王様!?
*****

オフライン

投稿: 164



SolidWorks2011 SP5 x64

プロファイルを見る
Re:EnterprisePDM内の半透明ファイルについて
« 返信 #2 投稿日: 2011/10/20 - 23:29:43 »
引用して返信

Makaronさん、詳細な解説とアドバイス有難うございます。
都合により当方の使用環境でのテストが出来るのは月曜日以降となりますが、
取り急ぎこちらの状況等につきまして返信させて頂きます。

まず、<System.IO.Directory.GetFiles でのファイル名取得のエラーについて>ですが、以下の手順で発生しました。
1.私のPCからEPDMにファイルをチェックイン
2.他のPCでチェックインしたファイルのファイル名を変更
3.私のPC上では半透明化して見えるようになる
4.System.IO.Directory.GetFilesでファイル取得 --> エラー発生
5.「ローカルキャッシュをクリア」「最新バージョンの取得」を行うが同じエラーが発生
6.手動で半透明化したファイルを削除して再び同メソッドでファイル取得 --> エラー発生せず

フォルダの有無を確認するメソッドを介しているので、パスの間違いは無いかと思われます。

>ちなみに、コマンドプロンプトでフォルダをDirで表示するとファイルは見えるでしょうか?
上記については、月曜日以降に確認したいと思います。

>なぜ、ローカルファイルが気になるほど存在しているのでしょうか?
上記の質問についてですが、まだEPDMを導入して間もないため、一部のフォルダ構成が管理者権限を有する者の判断で変更される場合があります。
また、ユーザー間でもファイル単位で保存先フォルダを変更する場合があるので、稀ではありますが半透明化ファイルが発生します。
今後、フォルダ構成等を確定していく予定ですが、現状ではEPDMの図面番号検索に頼っている部分があります(汗)

>もしかすると、EPDMアドミンツールのユーザーを右クリックして「設定」ので、
「エクスプローラ」タブにある「ファイルボルトの一部でない読み取り専用ファイルを自動的に削除」がOFFになっていませんか?
これがOFFになっていると、ローカルキャッシュを取得しいて、他のPCでそのファイルを消すとローカルファイルになってしまいます。

これは良いことを教えて頂きました!
これで解決できるかもしれませんね。さっそく、管理者に確認してみます!

また、サンプルコードの作成有難うございます。
このようなサンプルコードをパパッと書いてしまうなんて…
頭が下がりますm(u_u)m
テスト環境を用意し、試用してみます。

取り急ぎになりますが、お礼申し上げます。

議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:EnterprisePDM内の半透明ファイルについて
« 返信 #3 投稿日: 2011/10/21 - 09:43:17 »
引用して返信

QWERさん、おはようございます。

書いていただいた手順からすると、「ファイルボルトの一部でない読み取り専用ファイルを自動的に削除」で
解決できる現象だと思います。


引用:
また、サンプルコードの作成有難うございます。
このようなサンプルコードをパパッと書いてしまうなんて…
頭が下がりますm(u_u)m

どういたしまして
実は「パパッ」と書いているのではなくて、過去に作成したプログラムからコードをコピッてるので、わりと早くつくれるのです。
最初から作ろうとするとAPIヘルプのにらめっこ&トライアンドエラーで時間がかかってしまいますよ。
議長に報告する   記録済み
QWER
カタマリの王様!?
*****

オフライン

投稿: 164



SolidWorks2011 SP5 x64

プロファイルを見る
Re:EnterprisePDM内の半透明ファイルについて
« 返信 #4 投稿日: 2011/10/24 - 18:44:44 »
引用して返信

Makaronさんへ

お世話になっております、QWERです。
EPDM内の半透明ファイルについて、ご教示頂いた点を確認しましたので報告いたします。

まず、EPDMの設定「ファイルボルトの一部でない読み取り専用ファイルを自動的に削除」
ですが、管理者に確認したところOFFになっておりました。
しかし、「自動的に削除」という点で、若干不安があるようで、
「ONにするのはEPDMの構成が安定したタイミングで行いたい」とのことで、
ONにすることで消えるかどうかの確認までは行えませんでした。
しかし、その他にも有用な設定がいくつか有りましたので、今後、機会を見て検証を行いたいと思います。

また、「コマンドプロンプトでフォルダをDirで表示するとファイルは見えるか?」
上記についてですが、「<フルパス>は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」というメッセージが出たため、取得出来ませんでした。

記載頂きましたサンプルコードは正常に使うことが出来、半透明ファイルのみをリストアップ出来ました。

管理者より『「ファイルボルトの一部でない読み取り専用ファイルを自動的に削除」をONに出来るまでの間は、半透明ファイルは手動で削除して欲しい』との事でしたので、ひとまずはそのように対処したいと思います。

色々とご指導頂き有難うございました。
取り急ぎ、報告とお礼まで。
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:EnterprisePDM内の半透明ファイルについて
« 返信 #5 投稿日: 2011/10/24 - 19:34:01 »
引用して返信


引用:
しかし、「自動的に削除」という点で、若干不安があるようで、
「ONにするのはEPDMの構成が安定したタイミングで行いたい」とのことで、
ONにすることで消えるかどうかの確認までは行えませんでした。

そうですね、確かに不安と感じるかもしれませんね。
ただ、PDMの仕組みを考えると、データ自身はサーバーに保存されていて、
今回のオプションは、クライアントのキャッシュ部分に関しての削除となるので、
安心してもいいと思います。

それでも、私からの助言だけで不安要素をなくすことは出来ないと思います。
管理者の方に、代理店のサポートの方へ確認をとってもらうと良いのではないでしょうか?
議長に報告する   記録済み
QWER
カタマリの王様!?
*****

オフライン

投稿: 164



SolidWorks2011 SP5 x64

プロファイルを見る
Re:EnterprisePDM内の半透明ファイルについて
« 返信 #6 投稿日: 2011/10/25 - 15:27:05 »
引用して返信

>>ただ、PDMの仕組みを考えると、データ自身はサーバーに保存されていて、
今回のオプションは、クライアントのキャッシュ部分に関しての削除となるので、安心してもいいと思います。


個人的には透明ファイルのが作成される意義を、
「フォルダやファイルが移動、もしくは削除されましたよ」という目印程度と考えているのですが、
管理者としては、責任も大きいので慎重に考えているようです。

>>管理者の方に、代理店のサポートの方へ確認をとってもらうと良いのではないでしょうか?

ちょうど、今週中に代理店の方が別件で来られるので確認してみたいと思います。アドバイス有難うございます。
議長に報告する   記録済み
ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: EnterprisePDM内の半透明ファイルについて 前のトピック 次のトピック
ジャンプします: