0

我有一个带有两个文本框的程序。一个用于文件路径,另一个用于文件夹路径(目录)。现在,我的拖放功能仅允许一个文本框中的文件路径和另一个文本框中的文件夹路径(目录)。

但是,我不确定我的验证方法是否正确。以下是验证文件或目录的代码的两部分:

If e.Data.GetDataPresent(DataFormats.FileDrop) Then

            Dim filePathDragDrop() As String = CType(e.Data.GetData(DataFormats.FileDrop), String())

            For Each pathTemp In filePathDragDrop

                ' This checks if it is a file
                If File.GetAttributes(pathTemp) = FileAttributes.Archive Then
                    TextBoxCopyFrom.Text = pathTemp
                End If

            Next

        End If

对于检查目录,与上面类似的设置只是这不同

' Checks for directory
 If File.GetAttributes(pathTemp) = FileAttributes.Directory Then
                    TextBoxCopyTo.Text = pathTemp
                End If

这是检查要删除的文件是否确实是文件以及要删除的文件夹(目录)是否确实是文件夹(目录)的正确方法吗?

是否有任何可能被错误验证的物品被丢弃?

我假设“FileAttributes.Archive”的存档部分与文件数据有关。

4

1 回答 1

0

不,这是不正确的。存档属性不必打开。当用户使用备份程序并且文件自备份后未更改时,它将被关闭。实际上不确定这些天备份程序是否仍然以这种方式工作,但您不能做出任何假设。

对目录的测试不正确。你需要像这样测试它:

If (File.GetAttributes(pathTemp) And FileAttributes.Directory) = FileAttributes.Directory Then
   '' It's a directory
Else
   '' It's a file
End If
于 2013-05-08T21:29:55.390 回答