2016-09-21 163 views
1

正如你所知的服务器端swift完美2.0框架已经出来。我试图获得根目录的路径,但没有任何运气。如何在Perfect 2.0中获取项目文件夹的根目录路径?

片段1

let fileDir = Dir("/Resources/fileuploads") 
print(fileDir.path) 

这个代码给我路径

/Resources/fileuploads 

片段2

let fileDir = Dir(Dir.workingDir.path + "Resources/fileuploads") 
print(fileDir.path) 

这段代码给我路径

/Users/username/Library/Developer/Xcode/DerivedData/projname-acxmbygsjkthxvbigpfoqesstidh/Build/Products/Debug/Resources/fileuploads/ 

但是我想要它的实际路径,指向的是。

/Users/username/Documents/folderOne/folderTwo/projname/Resources/fileuploads/ 

其中

/Users/username/Documents/folderOne/folderTwo/projname 

是在项目的我的根文件夹所在的路径。

问题

如何获得路径项目的根文件夹?

回答

-2

经过长时间的研究,我发现它没有必要得到这个位置。 Dir返回的目录将足以存储我的文件。

-1
var paths: [AnyObject] = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) 

以访问文件夹..像下面的代码..

let filePath = paths[0].stringByAppendingString("/image.mov") 

不过你需要任何帮助,请随时问我。

+0

我不这会工作。因为这不是Cocoa Touch。它是完美2.0(http://perfect.org) CoreFoundation不适用于此,所以NSSearchPathForDirectoriesInDomains是不会工作。 –

+0

行..让我再次看到你的解决方案.. – JAck

+0

有没有办法我可以从swift访问$(PROJECT_DIR)或$(SRCROOT)。不使用任何CocoaTouch框架? –

2

您可以实际使用基金会与斯威夫特3和完善2.

接下来,让你的工作路径,你将不得不使用文件管理器

let fileManager = FileManager.default 
let currentPath = fileManager.currentDirectoryPath 
print("Current path: \(currentPath)") 

在我的情况,上面的代码中(处理函数中藏)产生了以下,从终端上运行时:

./.build/debug/AltTabAPI 
[INFO] Starting HTTP server on 0.0.0.0:8181 with document root ./webroot 
Current path: /Users/rb/ProjectsSwift/AltTabAPI 

工程同时支持Mac和Linux一样的......希望这帮助。

+0

有什么我需要改变在Xcode的生成设置。我仍然得到代码为 routes.add(方法:.get,uri:“/ webroot/debug /”)的路径为“/用户/用户名/库/开发人员/ Xcode/DerivedData/projname-acxmbygsjkthxvbigpfoqesstidh/Build/Products/apiCallTest “){(请求,响应)在 让文件管理= FileManager.default 让currentPath = fileManager.currentDirectoryPath 打印(” 当前路径:\(currentPath)“) response.setBody(字符串:currentPath) response.completed () } –

1

看起来你已经整理出了你的问题,但是如果其他人(比如我自己)对你为什么看到Dir.workingDir.path差异感到好奇,请注意,如果你从命令行构建并运行Perfect项目你的根目录,swift build + .build/debut/YourProjectName),工作主任将成为你的项目根目录。

但是,如果你使用Xcode构建和运行,将会像/Users/username/Library/Developer/Xcode/DerivedData/projname-acxmbygsjkthxvbigpfoqesstidh/Build/Products/Debug/Resources/那样。

当试图构建一个从Xcode提供静态文件的项目时有点烦人,但很好理解。

相关问题