我想要完成的非常基本的事情。
A有一个文件(图像)源存储为字符串(简单路径)。
我想将该文件复制到自定义目标。更准确地说是位于应用程序根目录中的文件夹名称图像。我检查了文档,所有这些都引用了FolderItem类,遗憾的是,我无法弄清楚。
任何想法?
答案 0 :(得分:1)
FolderItem类有一个内置的FileCopy方法,我建议学习FolderItem,因为从长远来看,它使文件处理变得更加容易,因为它实际上是在Xojo / Real Studio中实现它的唯一方法。
通常使用GetFolderItem方法初始化folderitem类:
dim f as folderitem = GetFolderItem("somefile.pdf")
此基本功能在与可执行文件相同的目录中查找pdf文件。如果文件在其他地方,您可以使用绝对路径,如“C:/SomeFolder/somefile.pdf”。
有一些被禁止的位置需要被大量访问(应用程序数据,首选项等),最简单的方法是使用SpecialFolders对象。如果您的文件位于Application Data文件夹中,您可以访问它:
dim f as folderitem = SpecialFolder.ApplicationData.child("somefile.pdf")
SpecialFolder.ApplicationData返回一个folderitem,子查找该文件。 Folderitem子方法和父方法非常重要。
有很多关于如何在https://docs.xojo.com/index.php/GetFolderItem
使用GetFolderItem的示例SpecialFolder在https://docs.xojo.com/index.php/SpecialFolder
解释如果您想要视频培训,订阅者可以在http://www.bkeeney.com/XojoTraining/xojotraining.cgi
获得超过40小时的Real Studio和Xojo培训答案 1 :(得分:1)
如果您不习惯面向对象的语法,只需将FolderItem视为复制命令所在的位置。下面,我们创建两个FolderItem对象:一个用于源文件,另一个用于目标文件夹。完成后,我们可以使用FolderItem的CopyFileTo()方法来复制文件:
dim s as String
dim source as FolderItem
dim dest as FolderItem
s="C:\test.jpg"
source=GetFolderItem(s)
dest=GetFolderItem("C:\image")
source.CopyFileTo(dest)
答案 2 :(得分:1)
FolderItem class可以表示计算机上的任何文件或文件夹。要为特定的绝对路径创建FolderItem实例,请将路径传递给GetFolderItem方法并存储结果:
Dim SourceFile As FolderItem
SourceFile = GetFolderItem("C:\ExampleFolder\ExampleFile.txt", PathTypeAbsolute)
构建FolderItem后,您可以修改其属性并调用其方法以影响对基础文件或目录的更改。
要将文件复制或移动到另一个目录,您需要获取表示目标目录的FolderItem。根据目标,您可以使用多种方法之一来获取目标FolderItem。
例如,
Dim destination As FolderItem
destination = GetFolderItem("C:\DestinationExample\", PathTypeAbsolute)
或使用SpecialFolder模块:
destination = SpecialFolder.Desktop 'the user's desktop directory
或使用parent的ExecutableFile property的App class文件夹:
destination = App.ExecutableFile.Parent 'your app's directory
设置源和目标FolderItem后,只需调用源FolderItem的CopyFileTo或MoveFileTo方法:
Dim SourceFile As FolderItem
SourceFile = GetFolderItem("C:\ExampleFolder\ExampleFile.txt", PathTypeAbsolute)
Dim destination As FolderItem
destination = GetFolderItem("C:\DestinationExample\", PathTypeAbsolute)
SourceFile.MoveFileTo(destination)
' or
SourceFile.CopyFileTo(destination)
请注意,CopyFileTo和MoveFileTo方法不能用于移动或复制目录,只能用于文件。
答案 3 :(得分:1)
Folderitems是一种表示路径的方式,与OS细节无关。例如,如果您计划为Windows和Mac或Linux创建应用程序,这一点非常重要。
在Windows中,典型路径表示为
C:\Users\MitchMatch\Desktop\myPicture.png
在Mac OS X或Linux中,相同的路径为:
C:/Users/MitchMatch/Desktop/myPicture.png
FolderItem还提供了直接访问桌面的方法:
Dim f as folderItem = SpecialFolder.Desktop.Child("myPicture.png")
要复制文件,您可以使用内置在FolderItem.CopyFileTo方法中的Xojo,或者对系统使用shell,并使用命令行。
例如,在Windows上,您可以使用
Dim s as new shell
s.execute("Copy c:\Users\MitchMatch\Desktop\myPicture.png c:\Users\MitchMatch\Pictures")
在Mac OS X和Linux上,命令是CP。请注意,与Xojo CopyFileTo命令相反,系统函数能够复制整个目录。